
МПУЭВС. Лекции. Задания / pdf_ПрилПЦиПУ / Приложение_ М_ ОднокристОМЭВМ
.pdfиспользуемый в качестве регистра косвенного адреса; ad - адрес прямо адресуемого байта;
ads - адрес прямо адресуемого байта-источника; add - адрес прямо адресуемого байта-получателя; ad11 - 11-разрядный абсолютный адрес перехода; ad16 - 16-разрядный абсолютный адрес перехода; rel - относительное смещение;
#d - непосредственный операнд (1байт); #d16 - непосредственный операнд (2 байта); bit - адрес прямо адресуемого бита;
/bit - инверсия прямо адресуемого бита;
А - аккумулятор;
PC - счетчик команд;
DPTR - регистр указатель данных;
() - содержимое ячейки памяти или регистра,
М.19.6 Команды пересылки данных
Эта группа представлена 28 командами, их краткое описание приведено в таблице М.13, где также указаны тип команды (Т) в
соответствии с таблицей М.12, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица М.13 - Команды пересылки данных
Название команды |
Мнемокод |
КОП |
T |
Б |
Ц |
Операция |
Пересылка в аккумулятор из регистра |
MOV A, Rn |
11101rrr |
1 |
1 |
1 |
(A)←(Rn) |
(п=0+7) |
|
|
|
|
|
|
Пересылка в аккумулятор |
MOV A, ad |
11100101 |
3 |
2 |
1 |
(A)←(ad) |
прямоадресуемого байта |
|
|
|
|
|
|
Пересылка в аккумулятор байта из |
MOV A, |
1110011i |
1 |
1 |
1 |
(A)←((Ri)) |
РПД (i=0,1) |
@Ri |
|
|
|
|
|
Загрузка в аккумулятор константы |
MOV A, #d |
01110100 |
2 |
2 |
1 |
(A) ← #d |
Пересылка в регистр из аккумулятора |
MOV Rn, A |
11111rrr |
1 |
1 |
1 |
(Rn)←(A) |
Пересылка в регистр |
MOV Rn, ad |
10101rrr |
3 |
2 |
2 |
(Rn)←(ad) |
прямоадресуемого байта |
|
|
|
|
|
|
Загрузка в регистр константы |
MOV Rn, #d |
01111rrr |
2 |
2 |
1 |
(Rn)←#d |
Пересылка по прямому адресу |
MOV ad, A |
11110101 |
3 |
2 |
1 |
(ad) ← (A) |
аккумулятора |
|
|
|
|
|
|
Пересылка по прямому адресу |
MOV ad, Rn |
10001rrr |
3 |
2 |
2 |
(ad)←(Rn) |
регистра |
|
|
|
|
|
|
Пересылка прямоадресуемого байта по |
MOV add, |
10000101 |
3 |
3 |
2 |
(add)← (ads) |
прямому адресу |
ads |
|
|
|
|
|
Пересылка байта из РПД по прямому |
MOV ad, |
1000011i |
3 |
2 |
2 |
(ad)←((Ri)) |
адресу |
@Ri |
|
|
|
|
|
Пересылка по прямому адресу |
MOV ad, #d |
01110101 |
7 |
3 |
2 |
(ad)←#d |
константы |
|
|
|
|
|
|
Пересылка в РПД из аккумулятора |
MOV @Ri, |
1111011i |
1 |
1 |
1 |
((Ri))←(A) |
|
A |
|
|
|
|
|
Пересылка в РПД прямоадресуемого |
MOV @Ri, |
0110011i |
3 |
2 |
2 |
((Ri))←(ad) |
байта |
ad |
|
|
|
|
|
Пересылка в РПД константы |
MOV @Ri, |
0111011i |
2 |
2 |
1 |
((Ri))←#d |
|
#d |
|
|
|
|
|
Загрузка указателя данных |
MOV DPTR, |
10010000 |
3 |
3 |
2 |
(DPTR)← |
|
#d16 |
|
|
|
|
#d16 |
Пересылка в аккумулятор байта из ПП |
MOVC A, |
10010011 |
1 |
1 |
2 |
(A)← ((A) |
|
@A+DPTR |
|
|
|
|
+(DPTR)) |
Пересылка в аккумулятор байта из ПП |
MOVC A, |
10000011 |
1 |
1 |
2 |
(PC)← |
|
@A+PC |
|
|
|
|
(PC)+1, (A) |
|
|
|
|
|
|
← ((A)+(PC)) |
Пересылка в аккумулятор байта из |
MOVX A, |
1110001i |
1 |
1 |
2 |
(A)← ((Ri)) |
ВПД |
@Ri |
|
|
|
|
|
Пересылка в аккумулятор байта из |
MOVX |
11100000 |
1 |
1 |
2 |
(A)← |
расширенной ВПД |
A,@DPTR |
|
|
|
|
((DPTR)) |
Пересылка в ВПД из аккумулятора |
MOVX |
1111001i |
1 |
1 |
2 |
((Ri))←(A) |
|
@Ri, A |
|
|
|
|
|
Пересылка в расширенную ВПД из |
MOVX |
11110000 |
1 |
1 |
2 |
((DPTR))← |
аккумулятора |
@DPTR, A |
|
|
|
|
(A) |
Загрузка в стек |
PUSH ad |
11000000 |
3 |
2 |
2 |
(SP)← |
|
|
|
|
|
|
(SP) + 1, |
|
|
|
|
|
|
((SP))←(ad) |
Извлечение из стека |
POP ad |
11010000 |
3 |
2 |
2 |
(ad)←(SP), |
|
|
|
|
|
|
(SP)← |
|
|
|
|
|
|
(SP) - 1 |
Обмен аккумулятора с регистром |
XCH A, Rn |
11001rrr |
1 |
1 |
1 |
(A)↔ (Rn) |
|
|
|
|
|
|
|
Обмен аккумулятора с |
XCH A, ad |
11000101 |
3 |
2 |
1 |
(A)↔(ad) |
прямоадресуемым байтом |
|
|
|
|
|
|
Обмен аккумулятора с байтом из РПД |
XCH A, |
1100011i |
1 |
1 |
1 |
(A)↔((Ri)) |
|
@Ri |
|
|
|
|
|
Обмен младших тетрад аккумулятора и |
XCHD A, |
1101011i |
1 |
1 |
1 |
(A0...3) ↔ |
байта РПД |
@Ri |
|
|
|
|
((Ri)0..(Ri)3) |
По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды M0VX и MOVC
соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая - чтение байт из памяти программ.
По команде ХСН выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD - обмен младшими тетрадами (битами (0- 3) и ( 4 - 7)).
Команды PUSH и POP предназначены соответственно для записи данных в стек и их чтения из стека. Размер стека ограничен лишь размером резидентной памяти данных. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08h.
Группа команд пересылок микроконтроллера имеет следующую особенность - в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в
которых вместо адреса можно ставить название соответствующего регистра.
Например, чтение PSW в аккумулятор может быть выполнено командой
MOV A, PSW, которая преобразуется Ассемблером к виду
MOVA, 0D0h (E5D0),
где Е5 - код операции, a D0 - операнд (адрес PSW).
В микро-ЭВМ аккумулятор имеет два различных имени в зависимости от способа адресации: А - при неявной адресации (например, MOV A, R0) и
АСС - при использовании прямого адреса. Первый способ предпочтительнее,
однако, не всегда применим.
М.19.7 Команды арифметических операций
Вэту группу входят 24 команды, краткое описание которых приведено
втаблице М14. Из нее следует, что микроЭВМ выполняет достаточно широкий набор команд для организации обработки целочисленных данных,
включая команды умножения и деления.
В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица М14 - Арифметические операции.
Название команды |
Мнемоко |
КОП |
T |
Б |
Ц |
Операция |
|
д |
|
|
|
|
|
Сложение аккумулятора с регистром |
ADD A, |
00101 |
1 |
1 |
1 |
(A) ← (A) + (Rn) |
(п=0*7) |
Rn |
rrr |
|
|
|
|
Сложение аккумулятора с |
ADD A, |
001001 |
3 |
2 |
1 |
(A) ←(A) + (ad) |
прямоадресуемым байтом |
ad |
01 |
|
|
|
|
Сложение аккумулятора с байтом из |
ADD A, |
001001 |
1 |
1 |
1 |
(A) ← (A) + |
РПД (i = 0,1) |
@Ri |
1i |
|
|
|
((Ri)) |
Сложение аккумулятора с |
ADD A, |
001001 |
2 |
2 |
1 |
(A)←(A) + #d |
константой |
#d |
00 |
|
|
|
|
Сложение аккумулятора с регистром |
ADDC A, |
00111 |
1 |
1 |
1 |
(A)← (A) + (Rn) |
и переносом |
Rn |
rrr |
|
|
|
+ (Cr) |
Сложение аккумулятора с |
ADDC A, |
001101 |
3 |
2 |
1 |
(A)← (A) + (ad) |
прямоадресуемым байтом и |
ad |
01 |
|
|
|
+ (Cr) |
переносом |
|
|
|
|
|
|
Сложение аккумулятора с байтом из |
ADDC A, |
001101 |
1 |
1 |
1 |
(A)←(A) + ((Ri)) |
РПД и переносом |
@Ri |
1i |
|
|
|
+ (Cr) |
Сложение аккумулятора с |
ADDC A, |
001101 |
2 |
2 |
1 |
(A)← (A) + # d + |
константой и переносом |
#d |
00 |
|
|
|
(Cr) |
Десятичная коррекция аккумулятора |
DA A |
110101 |
1 |
1 |
1 |
Если (А0..A3)>9 |
|
|
00 |
|
|
|
или ((АСr)=1),то |
|
|
|
|
|
|
(А0..A3)←(A0.. |
|
|
|
|
|
|
A3) + 6, затем |
|
|
|
|
|
|
если (А4..A7)>9 |
|
|
|
|
|
|
или (Сr)=1, то |
|
|
|
|
|
|
(А4..A7) ← |
|
|
|
|
|
|
(А4..A7) + 6 |
Вычитание из аккумулятора |
SUBB A, |
10011 |
1 |
1 |
1 |
(А) ← (А) - (Сr) |
регистра и заёма |
Rn |
rrr |
|
|
|
- (Rn) |
Вычитание из аккумулятора |
SUBB A, |
100101 |
3 |
2 |
1 |
(А) ← (А) - (Сr) |
прямоадресуемого байта и заема |
ad |
01 |
|
|
|
- ((ad)) |
Вычитание из аккумулятора байта |
SUBB A, |
100101 |
1 |
1 |
1 |
(А)← (А) - (Сr) - |
|
|
|
|
|
|
|
РПД и заема |
@Ri |
1i |
|
|
|
((Ri)) |
|
|
|
|
|
|
|
Вычитание из аккумулятора |
SUBB A, |
100101 |
2 |
2 |
1 |
(А) ← (А) - (Сr) |
константы и заема |
d |
00 |
|
|
|
- #d |
Инкремент аккумулятора |
INC A |
000001 |
1 |
1 |
1 |
(А) ← (А) + 1 |
|
|
00 |
|
|
|
|
Инкремент регистра |
INC Rn |
00001 |
1 |
1 |
1 |
(Rn)←(Rn)+ 1 |
|
|
rrr |
|
|
|
|
Инкремент прямоадресуемого байта |
INC ad |
000001 |
3 |
2 |
1 |
(ad)←(ad) + 1 |
|
|
01 |
|
|
|
|
Инкремент байта в РПД |
INC @Ri |
000001 |
1 |
1 |
1 |
((Ri))←((Ri))+1 |
|
|
1i |
|
|
|
|
Инкремент указателя данных |
INC |
101000 |
1 |
1 |
2 |
(DPTR) |
|
DPTR |
11 |
|
|
|
←(DPTR) + 1 |
Декремент аккумулятора |
DEC A |
000101 |
1 |
1 |
1 |
(A)←(A)-1 |
|
|
00 |
|
|
|
|
Декремент регистра |
DEC Rn |
00011 |
1 |
1 |
1 |
(Rn)←(Rn)-1 |
|
|
rrr |
|
|
|
|
Декремент прямоадресуемого байта |
DEC ad |
000101 |
3 |
2 |
1 |
(ad)←(ad)-1 |
|
|
01 |
|
|
|
|
Декремент байта в РПД |
DEC @Ri |
000101 |
1 |
1 |
1 |
«Ri))←((Ri))-1 |
|
|
1i |
|
|
|
|
Умножение аккумулятора на регистр |
MUL AB |
101001 |
1 |
1 |
4 |
(B)(A)←(A)*(B) |
В |
|
00 |
|
|
|
|
Деление аккумулятора на регистр В |
DIV AB |
100001 |
1 |
1 |
4 |
(B).(A)←(A)/(B) |
|
|
00 |
|
|
|
|
По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV
устанавливаются флаги PSW, структура которых приведена в п. М.3.2.
Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой
DAA.
Флаг OV устанавливается при переносе из разряда D6, т. е. в случае,
если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком.
Флаг Р устанавливается и сбрасывается аппаратно. Если число
единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.
М.19.8 - Команды логических операций
В этой группе 25 команд, их краткое описание приведено в таблице М.15. Нетрудно видеть, что эти команды позволяют выполнять операции над байтами: логическое И (&), логическое ИЛИ ( V), исключающее ИЛИ ((+)),
инверсию (NOT), сброс в нулевое значение и сдвиг. В таблице указаны тип команды (Т), ее длина в байтах (Б) и время выполнения в машинных циклах
(Ц).
Таблица М15 - Логические операции и операции сдвига
Название команды |
Мнемокод |
КОП |
T |
Б |
Ц |
Операция |
Логическое И аккумулятора и |
ANL A, |
01011 |
1 |
1 |
1 |
(A) ← (A) |
регистра |
Rn |
rrr |
|
|
|
AND (Rn) |
Логическое И аккумулятора и |
ANL A, ad |
010101 |
3 |
2 |
1 |
(A) ← (A) |
прямоадресуемого байта |
|
01 |
|
|
|
AND (ad) |
Логическое И аккумулятора и |
ANL A, |
010101 |
1 |
1 |
1 |
(A)←(A)AN |
байта из РПД |
@Ri |
1i |
|
|
|
D((Ri)) |
Логическое И аккумулятора и |
ANL A, #d |
010101 |
2 |
2 |
1 |
(A)← (A) |
константы |
|
00 |
|
|
|
AND #d |
Логическое И прямоадресуемого |
ANL ad, A |
010100 |
3 |
2 |
1 |
(ad) ← (ad) |
байта и аккумулятора |
|
10 |
|
|
|
AND (A) |
Логическое И прямоадресуемого |
ANL ad, |
010100 |
7 |
3 |
2 |
(ad) ← (ad) |
байта и константы |
#d |
11 |
|
|
|
AND #d |
Логическое ИЛИ аккумулятора и |
ORLA, Rn |
01001 |
1 |
1 |
1 |
(A) ← (A) OR |
регистра |
|
rrr |
|
|
|
(Rn) |
Логическое ИЛИ аккумулятора и |
ORLA, ad |
010001 |
3 |
2 |
1 |
(A) ← (A) OR |
прямоадресуемого байта |
|
01 |
|
|
|
(ad) |
Логическое ИЛИ аккумулятора и |
ORLA, |
010001 |
1 |
1 |
1 |
(A)← (A) OR |
байта из РПД |
@Ri |
1i |
|
|
|
((Ri)) |
Логическое ИЛИ аккумулятора и |
ORL A, #d |
010001 |
2 |
2 |
1 |
(A)← (A) OR |
константы |
|
00 |
|
|
|
#d |
Логическое ИЛИ |
ORL ad, A |
010000 |
3 |
2 |
1 |
(ad) ← (ad) |
прямоадресуемого байта и |
|
10 |
|
|
|
OR (A) |
аккумулятора |
|
|
|
|
|
|
Логическое ИЛИ |
ORL ad, |
010000 |
7 |
3 |
2 |
(ad)← (ad) |
прямоадресуемого байта и |
#d |
11 |
|
|
|
OR #d |
константы |
|
|
|
|
|
|
Исключающее ИЛИ аккумулятора |
XRL A, Rn |
01101 |
1 |
1 |
1 |
(A) ← (A) |
и регистра |
|
rrr |
|
|
|
XOR (Rn) |
Исключающее ИЛИ аккумулятора |
XRL A, ad |
011001 |
3 |
2 |
1 |
(A) ← (A) |
|
|
|
|
|
|
|
и прямоадресуемого байта |
|
01 |
|
|
|
XOR (ad) |
|
|
|
|
|
|
|
Исключающее ИЛИ аккумулятора |
XRL A, |
011001 |
1 |
1 |
1 |
(A)←(A) |
и байта из РПД |
@Ri |
11 |
|
|
|
XOR ((Ri)) |
Исключающее ИЛИ аккумулятора |
XRL A, #d |
011001 |
2 |
2 |
1 |
(A)← (A) |
и константы |
|
00 |
|
|
|
XOR #d |
Исключающее ИЛИ |
XRL ad, A |
011000 |
3 |
2 |
1 |
(ad)← (ad) |
прямоадресуемого байта и |
|
10 |
|
|
|
XOR (A) |
аккумулятора |
|
|
|
|
|
|
Исключающее ИЛИ |
XRL ad, |
011000 |
7 |
3 |
2 |
(ad)← (ad) |
прямоадресуемого байта и |
#d |
11 |
|
|
|
XOR #d |
константы |
|
|
|
|
|
|
Сброс аккумулятора |
CLR A |
111001 |
1 |
1 |
1 |
(A)<-0 |
|
|
00 |
|
|
|
|
Инверсия аккумулятора |
CPL A |
111101 |
1 |
1 |
1 |
(A)←NOT(A) |
|
|
00 |
|
|
|
|
Сдвиг аккумулятора влево |
RL A |
001000 |
1 |
1 |
1 |
(An+1)←(An), |
циклический |
|
11 |
|
|
|
n=0÷6, (Ao) |
|
|
|
|
|
|
← (A7) |
Сдвиг аккумулятора влево через |
RLC A |
001100 |
1 |
1 |
1 |
(An+i)←(An), |
перенос |
|
11 |
|
|
|
n=0÷6, (Ao) |
|
|
|
|
|
|
←(С), (С)← |
|
|
|
|
|
|
(А7) |
Сдвиг аккумулятора вправо |
RR A |
000000 |
1 |
1 |
1 |
(An)←(An+i), |
циклический |
|
11 |
|
|
|
n=0÷6, (A 7)← |
|
|
|
|
|
|
(Ao) |
Сдвиг аккумулятора вправо через |
RRC A |
000100 |
1 |
1 |
1 |
(An)←(An+i), |
перенос |
|
11 |
|
|
|
n=0÷6, (A 7)← |
|
|
|
|
|
|
(С), (С) ← |
|
|
|
|
|
|
(Ao) |
Обмен местами тетрад в |
SWAP A |
110001 |
1 |
1 |
1 |
(A0...3) ↔ |
аккумуляторе |
|
00 |
|
|
|
(A4...7) |
М.19.9 Команды операций над битами
Группа состоит из 12 команд, краткое описание которых приведено в таблице М16. Эти команды позволяют выполнять операции над отдельными битами: сброс, установку, инверсию бита, а также логические И (&) и ИЛИ
(V). В качестве "логического" аккумулятора, участвующего во всех операциях с двумя операндами, выступает признак переноса С (разряд D7 PSW), в качестве операндов могут использоваться 128 бит из резидентной
памяти данных и регистры специальных функций, допускающие адресацию отдельных бит.
В таблице М16 указаны тип команды (Т), ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица М16 - Операции с битами
Название команды |
|
Мнемокод |
КОП |
т |
Б |
Ц |
Операция |
||
|
|
|
|
|
|
|
|
|
|
Сброс переноса |
|
|
CLRC |
11000011 |
1 |
1 |
1 |
(С)←0 |
|
|
|
|
|
|
|
|
|
|
|
Сброс бита |
|
|
|
CLR bit |
11000010 |
4 |
2 |
1 |
(b)←0 |
|
|
|
|
|
|
|
|
||
Установка переноса |
|
SETBC |
11010011 |
1 |
1 |
1 |
(С)←1 |
||
|
|
|
|
|
|
|
|
|
|
Установка бита |
|
|
SETB bit |
11010010 |
4 |
2 |
1 |
(b)←1 |
|
|
|
|
|
|
|
|
|
||
Инверсия переноса |
|
CPLC |
10110011 |
1 |
1 |
1 |
(С)←NOT(C) |
||
|
|
|
|
|
|
|
|
|
|
Инверсия бита |
|
|
CPL bit |
10110010 |
4 |
2 |
1 |
(b)←NOT(b) |
|
|
|
|
|
|
|
|
|
|
|
Логическое |
И |
бита и |
ANL C, bit |
10000010 |
4 |
2 |
2 |
(C)←(C) & (b) |
|
переноса |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Логическое |
И |
инверсии |
ANL C, /bit |
10110000 |
4 |
2 |
2 |
(С)←(С)& |
|
бита и переноса |
|
|
|
|
|
|
|
(NOT(b)) |
|
|
|
|
|
|
|
|
|||
Логическое ИЛИ бита и |
ORL C, bit |
01110010 |
4 |
2 |
2 |
(С)←(С) OR (b) |
|||
переноса |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Логическое |
|
|
ИЛИ |
ORL C, /bit |
10100000 |
4 |
2 |
2 |
(С)←(С)OR |
инверсии бита и переноса |
|
|
|
|
|
(NOT(b)) |
|||
|
|
|
|
|
|
|
|||
Пересылка бита в перенос |
MOV C, bit |
10100010 |
4 |
2 |
1 |
(C)←(b) |
|||
|
|
|
|
|
|
|
|||
Пересылка переноса в бит |
MOV bit, С |
10010010 |
4 |
2 |
2 |
(b)←(C) |
|||
|
|
|
|
|
|
|
|
|
|
М.19.10 Команды передачи управления
Группа представлена командами безусловного и условного переходов, командами вызова подпрограмм и командами возврата из подпрограмм.
В таблице М.17 указаны тип команды (Т), ее длина в байтах (Б) и время выполнения в машинных циклах (Ц). Команда безусловного перехода LJMP (L - long - длинный) осуществляет переход по абсолютному 16-битному адресу,
указанному в теле команды, т. е. команда обеспечивает переход в любую точку памяти программ.
Таблица М.17 - Команды передачи управления
Название команды |
|
|
|
Мнемокод |
КОП |
T |
Б |
Ц |
Операция |
|
|||
Длинный переход в полном |
LJMP ad16 |
00000010 |
1 |
3 |
2 |
(PC)←ad16 |
|
||||||
объеме ПП |
|
|
|
|
|
|
|
2 |
|
|
|
|
|
Абсолютный |
|
переход |
AJMP ad11 |
a10a9a8000 |
6 |
2 |
2 |
(PC)←(PC)+2, (РС0- |
|||||
внутри страницы в 2 Кб |
|
|
|
01 |
|
|
|
PC10)←ad11 |
|
||||
Короткий |
относительный |
SJMP rel |
10000000 |
5 |
2 |
2 |
(PC)←(PC) + 2, (PC) |
||||||
переход внутри страницы в |
|
|
|
|
|
|
← (PC) +rel |
|
|||||
256 байт |
|
|
|
|
|
|
|
|
|
|
|
|
|
Косвенный относительный |
JMP |
|
01110011 |
1 |
1 |
2 |
(PC)← (A) + (DPTR) |
||||||
переход |
|
|
|
|
|
©A+DPTR |
|
|
|
|
|
|
|
Переход, если аккумулятор |
JZ rel |
|
01100000 |
5 |
2 |
2 |
(PC)←(PC)+2, |
если |
|||||
равен нулю |
|
|
|
|
|
|
|
|
|
|
(А)=0, |
то |
|
|
|
|
|
|
|
|
|
|
|
|
|
(PC)←(PC)+rel |
|
Переход, если аккумулятор |
JNZ rel |
|
01110000 |
5 |
2 |
2 |
(PC)←(PC)+2, |
если |
|||||
не равен нулю |
|
|
|
|
|
|
|
|
|
|
(А)*0, |
то |
|
|
|
|
|
|
|
|
|
|
|
|
|
(PC)←(PC)+rel |
|
Переход, |
если |
|
перенос |
JC rel |
|
01000000 |
5 |
2 |
2 |
(PC)←(PC)+2, |
если |
||
равен единице |
|
|
|
|
|
|
|
|
|
|
(Сr)=1, |
то |
|
|
|
|
|
|
|
|
|
|
|
|
|
(PC)←(PC)+rel |
|
Переход, |
если |
|
перенос |
JNC rel |
|
01010000 |
5 |
2 |
2 |
(PC)←(PC)+2, |
если |
||
равен нулю |
|
|
|
|
|
|
|
|
|
|
(Сr)=0, |
то |
|
|
|
|
|
|
|
|
|
|
|
|
|
(PC)←(PC)+rel |
|
Переход, |
если |
бит |
равен |
JB bit, rel |
00100000 |
1 |
3 |
2 |
(PC)←(PC)+3, |
если |
|||
единице |
|
|
|
|
|
|
|
|
1 |
|
|
(bit)=l, |
то |
|
|
|
|
|
|
|
|
|
|
|
|
(PC)←(PC)+rel |
|
Переход, |
если |
бит |
равен |
JNB bit, rel |
00110000 |
1 |
3 |
2 |
(PC)←(PC)+3, |
если |
|||
нулю |
|
|
|
|
|
|
|
|
1 |
|
|
(bit)=0, |
то |
|
|
|
|
|
|
|
|
|
|
|
|
(PC)←(PC)+rel |
|
Переход, |
если |
|
бит |
JBC bit, rel |
00010000 |
1 |
3 |
2 |
(PC)← (PC) + 3, |
||||
установлен, |
|
|
|
с |
|
|
|
1 |
|
|
если (bit)=1, то (bit) |
||
последующим сбросом бита |
|
|
|
|
|
|
← 0 и (РС)← (PC) + |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
rel |
|
Декремент |
регистра |
и |
DJNZ |
Rn, |
11011rrr |
5 |
2 |
2 |
(PC)←(PC) + 2, (Rn) |
||||
переход, если не нуль |
|
|
rel |
|
|
|
|
|
←(Rn)-1, |
если |
|||
|
|
|
|
|
|
|
|
|
|
|
|
(Rn)≠0, то (PC)← |
|
|
|
|
|
|
|
|
|
|
|
|
|
(PC) + rel |
|
Декремент |
|
|
|
|
|
DJNZ |
ad, |
11010101 |
8 |
3 |
2 |
(PC)←(PC)+2, |
|
прямоадресуемого |
байта |
и |
rel |
|
|
|
|
|
(ad)← (ad)-1, если |
||||
переход, если не нуль |
|
|
|
|
|
|
|
|
(ad) ≠ 0, то (PC)← |
||||
|
|
|
|
|
|
|
|
|
|
|
|
(PC) + rel |
|
Сравнение |
аккумулятора |
с |
CJNE |
A, |
10110101 |
8 |
3 |
2 |
(PC)←(PC)+З,если |
||
прямоадресуемым байтом и |
ad, rel |
|
|
|
|
|
(A) ≠ (ad), то (PC)← |
||||
переход, еслк не равно |
|
|
|
|
|
|
|
(PC) + ге1, если (A) |
|||
|
|
|
|
|
|
|
|
|
|
< (ad), то (Сr)←1, |
|
|
|
|
|
|
|
|
|
|
|
иначе (Сr)← 0 |
|
Сравнение |
аккумулятора |
с |
CJNE |
A, |
10110100 |
1 |
3 |
2 |
(PC)←(PC)+З,если |
||
константой и переход, если |
#d, rel |
|
|
0 |
|
|
(А) ≠ #d, то (PC)← |
||||
не равно |
|
|
|
|
|
|
|
|
|
(PC) + ге1,если (А) |
|
|
|
|
|
|
|
|
|
|
|
< #d, то (Cr)←1, |
|
|
|
|
|
|
|
|
|
|
|
иначе (Сr)←0 |
|
Сравнение |
регистра |
с |
CJNE |
Rn, |
10111rrr |
1 |
3 |
2 |
(PC)←(PC)+З, если |
||
константой и переход, если |
#d, rel |
|
|
0 |
|
|
(Rn) ≠ #d, то (PC)← |
||||
не равно |
|
|
|
|
|
|
|
|
|
(PC) + rel,если (Rn) |
|
|
|
|
|
|
|
|
|
|
|
< #d, то (Cr)←1, |
|
|
|
|
|
|
|
|
|
|
|
иначе (Сr)←0 |
|
Сравнение байта в РПД с |
CJNE |
|
1011011i |
1 |
3 |
2 |
(PC)←(PC) + З,если |
||||
константой и переход, если |
@Ri,#d, rel |
|
0 |
|
|
((Ri)) ≠ #d, то (PC) |
|||||
не равно |
|
|
|
|
|
|
|
|
|
←(PC)+ге1,если |
|
|
|
|
|
|
|
|
|
|
|
((Ri)) < #d, то |
|
|
|
|
|
|
|
|
|
|
|
(Cr)←1, |
иначе |
|
|
|
|
|
|
|
|
|
|
(Сr)←0 |
|
Длинный |
|
вызов |
LCALL |
|
00010010 |
1 |
3 |
2 |
(PC)←(PC)+3, |
(SP) |
|
подпрограммы |
|
|
adl6 |
|
|
2 |
|
|
←(SP)+1, |
((SP)) |
|
|
|
|
|
|
|
|
|
|
|
←(PC0...7), |
|
|
|
|
|
|
|
|
|
|
|
(SP)←(SP)+1, |
((SP)) |
|
|
|
|
|
|
|
|
|
|
←(PC8...15), |
|
|
|
|
|
|
|
|
|
|
|
(PC)←ad16 |
|
Абсолютный |
вызов |
ACALL |
|
a10a9a8100 |
6 |
2 |
2 |
(PC)←(PC)+2, |
(SP) |
||
подпрограммы в |
пределах |
ad11 |
|
01 |
|
|
|
←(SP)+1, |
((SP)) |
||
страницы в 2 Кб |
|
|
|
|
|
|
|
|
←(PC0...7), |
|
|
|
|
|
|
|
|
|
|
|
|
(SP)←(SP)+1, |
((SP)) |
|
|
|
|
|
|
|
|
|
|
←(PC8..15), (PC0- |
|
|
|
|
|
|
|
|
|
|
|
10) ←ad11 |
|
Возврат из подпрограммы |
|
RET |
|
00100010 |
1 |
1 |
2 |
(PC8...15)←((SP)), |
|||
|
|
|
|
|
|
|
|
|
|
(SP)←(SP)-1, |
|
|
|
|
|
|
|
|
|
|
|
(PC0...7)←((SP)), |
|
|
|
|
|
|
|
|
|
|
|
(SP)←(SP) - 1 |
|
Возврат из |
подпрограммы |
RETI |
|
00110010 |
1 |
1 |
2 |
(PC8.,.15)←((SP)), |
|||
обработки прерывания |
|
|
|
|
|
|
|
(SP)←(SP)-1, |
|
||
|
|
|
|
|
|
|
|
|
|
(PC0...7)←((SP)), |
|
|
|
|
|
|
|
|
|
|
|
(SP)← (SP) - 1 |
|
Пустая операция |
|
|
NOP |
|
00000000 |
1 |
1 |
1 |
(PC)←(PC)+ 1 |
|
Действие команды AJMP (А - absolute - абсолютный) аналогично команде