Группа команд арифметических операций




Блок регистров специальных функций

Символ Наименование Адрес
*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)


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-17 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: