Название команды
| Мнемокод
| КОП
| Операция
|
Пересылка в аккумулятор из регистра (n = 0 - 7)
| MOV A, Rn
| 11101rrr
| (A) = (Rn)
|
Пересылка в аккумулятор прямо адресуемого байта
| MOV A, ad
|
| (A) = (ad)
|
Пересылка в аккумулятор байта из РДП (i = 0, 1)
| MOV A, @Ri
| 1110011i
| (A) = ((Ri))
|
Загрузка в аккумулятор константы
| MOV A, #d
|
| (A) = #d
|
Пересылка в регистр из аккумулятора
| MOV Rn, A
| 11111rrr
| (Rn) = (A)
|
Пересылка в регистр прямо адресуемого байта
| MOV Rn, ad
| 10101rrr
| (Rn) = (ad)
|
Загрузка в регистр константы
| MOV Rn, #d
| 01111rrr
| (Rn) = #d
|
Пересылка по прямому адресу аккумулятора
| MOV ad, A
|
| (ad) = (A)
|
Пересылка по прямому адресу регистра
| MOV ad, Rn
| 10001rrr
| (ad) = (Rn)
|
Пересылка прямо адресуемого байта по прямому адресу
| MOV add, ads
|
| (add) = (ads)
|
Пересылка байта из РДП по прямому адресу
| MOV ad, @Ri
| 1000011i
| (ad) = ((Ri))
|
Пересылка по прямому адресу константы
| MOV ad, #d
|
| (ad) = #d
|
Пересылка в РДП из аккумулятора
| MOV @Ri, A
| 1111011i
| ((Ri)) = (A)
|
Пересылка в РДП прямо адресуемого байта
| MOV @Ri, ad
| 0110011i
| ((Ri)) = (ad)
|
Пересылка в РДП константы
| MOV @Ri, #d
| 0111011i
| ((Ri)) = #d
|
Загрузка указателя данных
| MOV DPTR, #d16
|
| (DPTR) = #d16
|
Пересылка в аккумулятор байта из ПП
| MOVC A, @A + DPTR
|
| (A) = ((A) + (DPTR))
|
Пересылка в аккумулятор байта из ПП
| MOVC A, @A + PC
|
| (PC) = (PC) + 1
(A) = ((A) + (PC))
|
Пересылка в аккумулятор байта из ВПД
| MOVX A, @Ri
| 1110001i
| (A) = ((Ri))
|
Пересылка в аккумулятор байта из расширенной ВПД
| MOVX A, @DPTR
|
| (A) = ((DPTR))
|
Пересылка в ВПД из аккумулятора
| MOVX @Ri, A
| 1111001i
| ((Ri)) = (A)
|
Пересылка в расширенную ВПД из аккумулятора
| MOVX @DPTR, A
|
| ((DPTR)) = (A)
|
Загрузка в стек
| PUSH ad
|
| (SP) = (SP) + 1
((SP)) = (ad)
|
Извлечение из стека
| POP ad
|
| (ad) = (SP)
(SP) = (SP) - 1
|
Обмен аккумулятора с регистром
| XCH A, Rn
| 11001rrr
| (A) <-> (Rn)
|
Обмен аккумулятора с прямо адресуемым байтом
| XCH A, ad
|
| (A) <-> (ad)
|
Обмен аккумулятора с байтом из РДП
| XCH A, @Ri
| 1100011i
| (A) <-> ((Ri))
|
Обмен младшей тетрады аккумулятора с младшей тетрадой байта РДП
| XCHD A, @Ri
| 1101011i
| (A0-3) <-> ((Ri) 0-3)
|
Название команды
| Мнемокод
| КОП
| Операция
|
Сложение аккумулятора с регистром (n = 0 - 7)
| ADD A, Rn
| 00101rrr
| (A) = (A) + (Rn)
|
Сложение аккумулятора с прямо адресуемым байтом
| ADD A, ad
|
| (A) = (A) + (ad)
|
Сложение аккумулятора с байтом из РПД (i = 0, 1)
| ADD A, @Ri
| 0010011i
| (A) = (A) + ((Ri))
|
Сложение аккумулятора с константой
| ADD A, #d
|
| (A) = (A) + #d
|
Сложение аккумулятора с регистром и переносом
| ADDC A, Rn
| 00111rrr
| (A) = (A) + (Rn) + (C)
|
Сложение аккумулятора с прямо адресуемым байтом и переносом
| ADDC A, ad
|
| (A) = (A) + (ad) + (C)
|
Сложение аккумулятора с байтом из РПД и переносом
| ADDC A, @Ri
| 0011011i
| (A) = (A) + ((Ri)) + (C)
|
Сложение аккумулятора с константой и переносом
| ADDC A, #d
|
| (A) = (A) + #d + (C)
|
Десятичная коррекция аккумулятора
| DA A
|
| Если
(A0-3) > 9 \/ ((AC) = 1),
то (A0-3) = (A0-3) + 6, затем если
(A4-7) > 9 \/ ((C) = 1),
то (A4-7) = (A4-7) + 6
|
Вычитание из аккумулятора регистра и заема
| SUBB A, Rn
| 10011rrr
| (A) = (A) - (C) - (Rn)
|
Вычитание из аккумулятора прямо адресуемого байта и заема
| SUBB A, ad
|
| (A) = (A) - (C) - ((ad))
|
Вычитание из аккумулятора байта РПД и заема
| SUBB A, @Ri
| 1001011i
| (A) = (A) - (C) - ((Ri))
|
Вычитание из аккумулятора константы и заема
| SUBB A, #d
|
| (A) = (A) - (C) - #d
|
Инкремент аккумулятора
| INC A
|
| (A) = (A) + 1
|
Инкремент регистра
| INC Rn
| 00001rrr
| (Rn) = (Rn) + 1
|
Инкремент прямо адресуемого байта
| INC ad
|
| (ad) = (ad) + 1
|
Инкремент байта в РПД
| INC @Ri
| 0000011i
| ((Ri)) = ((Ri)) +1
|
Инкремент указателя данных
| INC DPTR
|
| (DPTR) = (DPTR) + 1
|
Декремент аккумулятора
| DEC A
|
| (A) = (A) - 1
|
Декремент регистра
| DEC Rn
| 00011rrr
| (Rn) = (Rn) - 1
|
Декремент прямо адресуемого байта
| DEC ad
|
| (ad) = (ad) - 1
|
Декремент байта в РПД
| DEC @Ri
| 0001011i
| ((Ri)) = ((Ri)) -1
|
Умножение аккумулятора на регистр B
| MUL AB
|
| (B)(A) = (A)*(B)
|
Деление аккумулятора на регистр B
| DIV AB
|
| (A).(B) = (A)/(B)
|
Название команды
| Мнемокод
| КОП
| Операция
|
Логическое И аккумулятора и регистра
| ANL A, Rn
| 01011rrr
| (A) = (A) /\ (Rn)
|
Логическое И аккумулятора и прямоадресуемого байта
| ANL A, ad
|
| (A) = (A) /\ (ad)
|
Логическое И аккумулятора и байта из РПД
| ANL A, @Ri
| 0101011i
| (A) = (A) /\ ((Ri))
|
Логическое И аккумулятора и константы
| ANL A, #d
|
| (A) = (A) /\ #d
|
Логическое И прямоадресуемого байта и аккумулятора
| ANL ad, A
|
| (ad) = (ad) /\ (A)
|
Логическое И прямоадресуемого байта и константы
| ANL ad, #d
|
| (ad) = (ad) /\ #d
|
Логическое ИЛИ аккумулятора и регистра
| ORL A, Rn
| 01001rrr
| (A) = (A) \/ (Rn)
|
Логическое ИЛИ аккумулятора и прямоадресуемого байта
| ORL A, ad
|
| (A) = (A) \/ (ad)
|
Логическое ИЛИ аккумулятора и байта из РПД
| ORL A, @Ri
| 0100011i
| (A) = (A) \/ ((Ri))
|
Логическое ИЛИ аккумулятора и константы
| ORL A, #d
|
| (A) = (A) \/ #d
|
Логическое ИЛИ прямоадресуемого байта и аккумулятора
| ORL ad, A
|
| (ad) = (ad) \/ (A)
|
Логическое ИЛИ прямоадресуемого байта и константы
| ORL ad, #d
|
| (ad) = (ad) \/ #d
|
Исключающее ИЛИ аккумулятора и регистра
| XRL A, Rn
| 01101rrr
| (A) = (A) \/ (Rn)
|
Исключающее ИЛИ аккумулятора и прямоадресуемого байта
| XRL A, ad
|
| (A) = (A) \/ (ad)
|
Исключающее ИЛИ аккумулятора и байта из РПД
| XRL A, @Ri
| 0110011i
| (A) = (A) \/ ((Ri))
|
Исключающее ИЛИ аккумулятора и константы
| XRL A, #d
|
| (A) = (A) \/ #d
|
Исключающее ИЛИ прямоадресуемого байта и аккумулятора
| XRL ad, A
|
| (ad) = (ad) \/ (A)
|
Исключающее ИЛИ прямоадресуемого байта и константы
| XRL ad, #d
|
| (ad) = (ad) \/ #d
|
Сброс аккумулятора
| CLR A
|
| (A) = 0
|
Инверсия аккумулятора
| CPL A
|
| (A) = (A)
|
Сдвиг аккумулятора влево циклически
| RL A
|
| (An+1) = (An),
n = 0? 6,
(A0) = (A7)
|
Сдвиг аккумулятора влево через перенос
| RLC A
|
| (An+1) = (An),
n = 0? 6,
(A0) = (C),
(C) = (A7)
|
Сдвиг аккумулятора вправо циклически
| RR A
|
| (A n) = (A n+1),
n = 0 = 6,
(A7) = (A0)
|
Сдвиг аккумулятора вправо через перенос
| RRC A
|
| (A n) = (A n+1),
n = 0 = 6,
(A7) = (C),
(C) = (A0)
|
Обмен местами тетрад в аккумуляторе
| SWAP A
|
| (A0-3) <-> (A4-7)
|
Название команды
| Мнемокод
| КОП
| Операция
|
Длинный переход в полном объеме памяти в программ
| LJMP ad16
|
| (PC) = ad16
|
Абсолютный переход внутри страницы в 2 Кбайта
| AJMP ad11
| a10a9a800001
| (PC) = (PC) + 2
(PC0-10) = ad11
|
Короткий относительный переход внутри страницы в 256 байт
| SJMP rel
|
| (PC) = (PC) + 2
(PC) = (PC) + rel
|
Косвенный относительный переход
| JMP @A+DPTR
|
| (PC) = (A) + (DPTR)
|
Переход, если аккумулятор равен нулю
| JZ rel
|
| (PC) = (PC) + 2,
если (A) = 0,
то (PC) = (PC) + rel
|
Переход, если аккумулятор не равен нулю
| JNZ rel
|
| (PC) = (PC) + 2,
если (A) = 0,
то (PC) = (PC) + rel
|
Переход, если перенос равен единице
| JC rel
|
| (PC) = (PC) + 2,
если (C) = 1,
то (PC) = (PC) + rel
|
Переход, если перенос равен нулю
| JNC rel
|
| (PC) = (PC) + 2,
если (C) = 0,
то (PC) = (PC) + rel
|
Переход, если бит равен единице
| JB bit, rel
|
| (PC) = (PC) + 3,
если (b) = 1,
то (PC) = (PC) + rel
|
Переход, если бит равен нулю
| JNB bit, rel
|
| (PC) = (PC) + 3,
если (b) = 0,
то (PC) = (PC) + rel
|
Переход, если бит установлен, с последующим сбросом бита
| JBC bit, rel
|
| (PC) = (PC) + 3,
если (b) = 1,
то (b) = 0
и (PC) = (PC) + rel
|
Декремент регистра и переход, если не нуль
| DJNZ Rn, rel
| 11011rrr
| (PC) = (PC) + 2,
(Rn) = (Rn) -1,
если (Rn) ≠ 0,
то (PC) = (PC) + rel
|
Декремент прямоадресуемого байта и переход, если не нуль
| DJNZ ad, rel
|
| (PC) = (PC) + 2,
(ad) = (ad) -1,
если (ad) = 0,
то (PC) = (PC) + rel
|
Сравнение аккумулятора с прямоадресуемым байтом и переход, если не равно
| CJNE A, ad, rel
|
| (PC) = (PC) + 3,
если (A) = (ad),
то (PC) = (PC) + rel,
если (A) < (ad),
то (C) = 1,
иначе (C) = 0
|
Сравнение аккумулятора с константой и переход, если не равно
| CJNE A, #d, rel
|
| (PC) = (PC) + 3,
если (A) = #d,
то (PC) = (PC) + rel,
если (A) < #d,
то (C) = 1,
иначе (C) = 0
|
Сравнение регистра с константой и переход, если не равно
| CJNE Rn, #d, rel
| 10111rrr
| (PC) = (PC) + 3,
если (Rn) = #d,
то (PC) = (PC) + rel,
если (Rn) < #d,
то (C) = 1,
иначе (C) = 0
|
Сравнение байта в РПД с константой и переход, если не равно
| CJNE @Ri, #d, rel
| 1011011i
| (PC) = (PC) + 3,
если ((Ri)) = #d,
то (PC) = (PC) + rel,
если ((Ri)) < #d,
то (C) = 1,
иначе (C) = 0
|
Длинный вызов подпрограммы
| LCALL ad16
|
| (PC) = (PC) + 3,
(SP) = (SP) + 1,
((SP)) = (PC0-7),
(SP) = (SP) + 1,
((SP)) = (PC8-15),
(PC) = ad16
|
Абсолютный вызов подпрограммы в пределах страницы в 2 Кбайта
| ACALL ad11
| a10a9a810001
| (PC) = (PC) + 2,
(SP) = (SP) + 1,
((SP)) = (PC0-7),
(SP) = (SP) + 1,
((SP)) = (PC8-15),
(PC0-10) = ad11
|
Возврат из подпрограммы
| RET
|
| (PC8-15) = ((SP)),
(SP) = (SP) - 1,
(PC0-7) = ((SP)),
(SP) = (SP) – 1
|
Возврат из подпрограммы обработки прерывания
| RETI
|
| (PC8-15) = ((SP)),
(SP) = (SP) - 1,
(PC0-7) = ((SP)),
(SP) = (SP) – 1
|
Холостая команда
| NOP
|
| (PC) = (PC) + 1
|
Примечание: Ассемблер допускает использование обобщенного имени команд JMP и CALL, которые в процессе трансляции заменяются оптимальными по формату командами вызова (ACALL, LCALL) или перехода (AJMP, SJMP, LJMP).
|