Блок регистров специальных функций
| Символ | Наименование | Адрес |
| *ACC | Аккумулятор | 0E0H |
| * B | Регистр-расширитель аккумулятора | 0F0H |
| * PSW | Слово состояния программы | 0D0H |
| SP | Регистр-указатель стека | 81H |
| DPTR | Регистр-указатель данных (DPH) (DPL) | 83H |
| 82H | ||
| * P0 | Порт 0 | 80H |
| * P1 | Порт 1 | 90H |
| * P2 | Порт 2 | 0A0H |
| * P3 | Порт 3 | 0B0H |
| * IP | Регистр приоритетов | 0B8H |
| * IE | Регистр маски прерываний | 0A8H |
| TMOD | Регистр режима таймера/счетчика | 89H |
| * TCON | Регистр управления/статус таймера | 88H |
| TH0 | Таймер 0 (старший байт) | 8CH |
| TL0 | Таймер 0 (младший байт) | 8AH |
| TH1 | Таймер 1 (старший байт) | 8DH |
| TL1 | Таймер 1 (младший байт) | 8BH |
| * SCON | Регистр управления приемопередатчиком | 98H |
| SBUF | Буфер приемопередатчика | 99H |
| PCON | Регистр управления мощностью | 87H |
| Примечание. Регистры, имена которых отмечены знаком (*), допускают адресацию отдельных бит. |
Формат слова состояния программы (ССП)
| Символ | Позиция | Имя и назначение | ||
| C | PSW.7 | Флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при выполнении арифметических и логических операций | ||
| AC | PSW.6 | Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заем в бите 3 | ||
| F0 | PSW.5 | Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфицируемый пользователем | ||
| RS1 RS0 | PSW.4 PSW.3 | Выбор банка регистров. Устанавливается и сбрасывается программой для выбора рабочего банка регистров (см. примечание) | ||
| OV | PSW.2 | Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций | ||
| _ | PSW.1 | Не используется | ||
| P | PSW.0 | Флаг паритета. Устанавливается и сбрасывается аппаратуры в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т.е. выполняет контроль по четности | ||
| Примечание. | RS1 | RS0 | Банк | Границы адресов |
| 00H-07H | ||||
| 08H-0FH | ||||
| 10H-17H | ||||
| 18H-1FH |
Группа команд передачи данных
| Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
| Пересылка в аккумулятор из регистра (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) |