Группа команд передачи данных
| Название команды | Мнемокод | КОП | Операция |
| Пересылка в аккумулятор из регистра (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) |
| Исключающее ИЛИ аккумулятора и прямоадресуемого байта | XRL A, ad | (A) = (A) | |
| Исключающее ИЛИ аккумулятора и байта из РПД | XRL A, @Ri | 0110011i | (A) = (A) |
| Исключающее ИЛИ аккумулятора и константы | XRL A, #d | (A) = (A) | |
| Исключающее ИЛИ прямоадресуемого байта и аккумулятора | XRL ad, A | (ad) = (ad) | |
| Исключающее ИЛИ прямоадресуемого байта и константы | XRL ad, #d | (ad) = (ad) | |
| Сброс аккумулятора | 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). |
Группа команд операции с битами
| Название команды | Мнемокод | КОП | Операция |
| Сброс переноса | CLR C | (C) = 0 | |
| Сброс бита | CLR bit | (b) = 0 | |
| Установка переноса | SETB C | (C) = 1 | |
| Установка бита | SETB bit | (b) = 1 | |
| Инверсия переноса | CPL C | (C) = (C) | |
| Инверсия бита | CPL bit | (b) = (b) | |
| Логическое И бита и переноса | ANL C, bit | (C) = (C) /\ (b) | |
| Логическое И инверсии бита и переноса | ANL C, /bit | (C) = (C) /\ (b) | |
| Логическое ИЛИ бита и переноса | ORL C, bit | (C) = (C) \/ (b) | |
| Логическое ИЛИ инверсии бита и переноса | ORL C, /bit | (C) = (C) \/ (b) | |
| Пересылка бита в перенос | MOV C, bit | (C) = (b) | |
| Пересылка переноса в бит | MOV bit, C | (b) = (C) |
Приложение 2






