Команды арифметических операций 8051.
В данную группу входят 24 команды, краткое описание которых приведено в таблице. Из нее следует, что микроЭВМ выполняет достаточно широкий набор команд для организации обработки целочисленных данных, включая команды умножения и деления.
В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица.8.Арифметические операции.
Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
Сложение аккумулятора с регистром (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 А, @Ri | 1001011i | (A) (A) - (C) - ((Ri)) | |||
Вычитание из аккумулятора константы и заема | 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)/(В) |
По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV устанавливаются флаги PSW, структура которых приведена в таблице.
Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA.
Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком.
Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.
Дата добавления: 2016-03-27; просмотров: 948;