Команды арифметических операций 8051

В данную группу входят 24 команды, краткое описание которых приведено в табл. 3.4. Из нее следует, что микро-ЭВМ выполняет достаточно широкий набор команд для организации обработки целочисленных данных, включая команды умножения и деления.

Арифметические операции.

Таблица 3.4

Название команды Мнемокод Т Б Ц Операция
Сложение аккумулятора с регистром (n=0÷7) ADD A, Rn A (A) + (Rn)
Сложение аккумулятора с прямо адресуемым байтом ADD A, ad A (A) + (ad)
Сложение аккумулятора с байтом из РПД (i = 0,1) ADD A, @Ri A (A) + ((Ri))
Сложение аккумулятора с константой ADD A, #d A (A) + #d
Сложение аккумулятора с регистром и переносом ADDC A, Rn A (A) + (Rn) + (C)
Сложение аккумулятора с прямо адресуемым байтом и переносом ADDC A, ad A (A)+ (ad)+ (C)
Сложение аккумулятора с байтом из РПД и переносом ADDC A, @Ri A (A) + ((Ri)) + (C)
Сложение аккумулятора с константой и переносом ADDC A, #d A (A) + # d + (C)
Десятичная коррекция аккумулятора DA A Если (А0…3)>9 или ((AC)=1),то (А0…3) (А0…З) + 6, затем если (А4…7) >9 или ((С)=1), то (А4…7) (А4…7) + 6
Вычитание из аккумулятора регистра и заёма SUBB A, Rn A (A) - (C) - (Rn)
Вычитание из аккумулятора прямо адресуемого байта и заема SUBB A, ad A (A) - (C) - ((ad))
Вычитание из аккумулятора байта РПД и заема SUBB А, @Ri A (A)-(C)-((Ri))
Вычитание из аккумулятора константы и заема SUBB А, d A (A) - (C) - #d
Инкремент аккумулятора INC А A (A) + 1
Инкремент регистра INC Rn Rn (Rn) + 1
Инкремент прямо адресуемого байта INC ad ad (ad) + 1
Инкремент байта в РПД INC @Ri (Ri) ((Ri)) + 1
Инкремент указателя данных INC DPTR DPTR (DPTR)+1
Декремент аккумулятора DEC A A (A) – 1
Декремент регистра DEC Rn Rn (Rn) – 1
Декремент прямоадресуемого байта DEC ad ad (ad) – 1
Декремент байта в РПД DEC @Ri (Ri) ((Ri)) - 1
Умножение аккумулятора на регистр В MUL AB BA (A)*(В)
Деление аккумулятора на регистр В DIV AB B.A (A)/(В)

По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV устанавливаются флаги PSW. Формат PSW приведен в табл. 3.5.

 

Формат PSW

Таблица 3.5

Обознач. Разряд Наименование и назначение
P PSW.0 Флаг паритета. Устанавливается и сбрасывается аппаратно: P=1, если в аккумуляторе нечетное число единиц; P=0, если в аккумуляторе четное число единиц
PSW.1 Флаг, определяемый пользователем. Устанавливается, сбрасывается и тестируется программно
OV PSW.2 Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций.
RS0 PSW.3 Выбор банка регистров. Устанавливаются и сбрасываются программно: RS1=0, RS0=0: Банк 0 (Адреса 00H ¸ 07H) RS1=0, RS0=1: Банк 1 (Адреса 08H ¸ 0FH) RS1=1, RS0=0: Банк 2 (Адреса 10H ¸ 17H) RS1=1, RS0=1: Банк 3 (Адреса 18H ¸ 1FH)
RS1 PSW.4  
F0 PSW.5 Флаг общего назначения. Устанавливается, сбрасывается и тестируется программно
AC PSW.6 Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратно при выполнении команд сложения и вычитания и несет информацию о переносе или заеме в 3-ем разряде
C PSW.7 Флаг переноса. Устанавливается и сбрасывается аппаратно (при выполнении арифметических и логических. операций) или программно.

Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA.

Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком.

Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.

Единственная команда вычитания — «вычитание с заемом» SUBB, поэтому перед её использованием необходимо контролировать значение бита переноса C.

При умножении старший байт результата записывается в регистр-расширитель В, а младший — в А. Если содержимое А>256, то формируется флаг арифметического переполнения OV. Бит С всегда сбрасывается.

При делении частное записывается в А, а остаток — в В. Флаги переноса C и арифметического переполнения OV сбрасываются. Если (А)<(В), то флаг дополнительного переноса (АС) не сбрасывается. При делении на 0 устанавливается флаг OV.








Дата добавления: 2015-10-09; просмотров: 1160;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.