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

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

В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).

Название команды Мнемокод КОП Т Б Ц Операция
Сложение аккумулятора с регистром (n=0÷7) ADD A, Rn 00l01rrr       (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         Если (А0…3)>9 или ((AC)=1),то(А0…3)¬ (А0…З) + 6, затем если (А4…7) >9 или ((С)=1), то (А4…7) ¬ (А4…7) + 6
Вычитание из аккумулятора регистра и заёма SUBB A, Rn 10011rrr       (A) ¬ (A) - (C) - (Rn)
Вычитание из аккумулятора прямоадресуемого байта и заема SUBB A, ad         (A) ¬ (A) - (C) - ((ad))
Вычитание из аккумулятора константы и заема SUBB А, d         (A) ¬ (A) - (C) - #d
Инкремент аккумулятора INC А         (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
Умножение аккумулятора на регистр В MUL AB         (B)(A) ¬ (A)*(В)
Деление аккумулятора на регистр В DIV AB         (B).(A) ¬ (A)/(В)

Таблица 2.3 Арифметические операции.

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: