КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Команды арифметических операций 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.
Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.
|