Команды арифметических операций
В данную группу входят 24 команды, краткое описание которых приведено в табл. 1.17. Кроме этого в таблице приведены данные о длине команды в байтах и время ее выполнения в машинных циклах.
Таблица.1.17. Арифметические операции
| Мнемоника команды | Код операции | Количество байтов в команде | Время выполнения команды, циклы | Выполняемые действия |
| ADD A, Rn | 00l01rrr | 1 | 1 | (A) (A) + (Rn) |
| ADD A, ad | 00100101 | 2 | 1 | (A) (A) + (ad) |
| ADD A, @Ri | 0010011i | 1 | 1 | (A) (A) + ((Ri)) |
| ADD A, #d | 00100100 | 2 | 1 | (A) (A) + #d |
| ADDC A, Rn | 00111rrr | 1 | 1 | (A) (A) + (Rn) + (C) |
| ADDC A, ad | 00110101 | 2 | 1 | (A) (A) + (ad) + (C) |
| ADDC A, @Ri | 0011011i | 1 | 1 | (A) (A) + ((Ri)) + (C) |
| ADDC A, #d | 00110100 | 2 | 1 | (A) (A) + # d + (C) |
| DA A | 11010100 | 1 | 1 | Если (А0…3)>9 или ((AC)=1), то (А0…3) (А0…) + 6, затем если (А4…7) >9 или ((С)=1), то (А4…7) (А4…7) + 6 |
| SUBB A, Rn | 10011rrr | 1 | 1 | (A) (A) - (C) - (Rn) |
| SUBB A, ad | 10010101 | 2 | 1 | (A) (A) - (C) - ((ad)) |
| SUBB А, @Ri | 1001011i | 1 | 1 | (A) (A) - (C) - ((Ri)) |
| SUBB А, d | 10010100 | 2 | 1 | (A) (A) - (C) - #d |
| INC А | 00000100 | 1 | 1 | (A) (A) + 1 |
| INC Rn | 00001rrr | 1 | 1 | (Rn) (Rn) + 1 |
| INC ad | 00000101 | 2 | 1 | (ad) (ad) + 1 |
| INC @Ri | 0000011i | 1 | 1 | ((Ri)) ((Ri)) + 1 |
| INC DPTR | 10100011 | 1 | 2 | (DPTR ) (DPTR) + 1 |
| DEC A | 00010100 | 1 | 1 | (A) (A) – 1 |
| DEC Rn | 00011rrr | 1 | 1 | (Rn) (Rn) – 1 |
| DEC ad | 00010101 | 2 | 1 | (ad) (ad) – 1 |
| DEC @Ri | 0001011i | 1 | 1 | ((Ri)) ((Ri)) - 1 |
| MUL AB | 10100100 | 1 | 4 | (B)(A) (A)*(В) |
| DIV AB | 10000100 | 1 | 4 | (B).(A) (A)/(В) |
По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV устанавливаются флаги PSW.
Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA.
Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком.
Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.
Дата добавления: 2015-09-11; просмотров: 997;
