Команды арифметических операций
Команды арифметических операций предназначены для выполнения операций сложения, сложения с переносом, вычитания, вычитания с заемом, инкрементирования, декрементирования, десятичной коррекции аккумулятора. Эти команды оперируют с данными в памяти и регистрах. Во всех случаях (кроме указанных исключений) устанавливаются признаки (флаги) нуля Z, знака S, четности P, переноса C и вспомогательного переноса AC. Все операции вычитания выполняются с использованием дополнительного кода, устанавливают 1 в разряде переноса для указания переноса и сбрасывают его для указания отсутствия переноса. В таблице 2.6 приведены команды арифметических операций.
Таблица 2.6 Команды арифметических операций
Мнемоника команды | Код операции | Количество байтов в команде | Время выполнения команды, циклы | Выполняемые действия |
ADD R | 10000SSS | 1 | 1 | (A) (A)+(R) |
ADD M | 10000110 | 1 | 2 | (A) (A)+M(HL) |
ADI data | 11000110 | 2 | 2 | (A) (A)+(байт2). |
ADC R | 10001SSS | 1 | 1 | (A) (A)+(R)+(C) |
ADC M | 10001110 | 1 | 2 | (A) (A)+M(HL)+(C). |
ACI data | 11001110 | 2 | 2 | (A) (A)+(байт2)+(C) |
DAD RP | 00RP1101 | 1 | 3 | (HL) (HL)+(RP). Устанавливается только флаг C. |
DAA | 00100111 | 1 | 1 | Десятичная коррекция (A) |
SUB R | 10010SSS | 1 | 1 | (A) (A)-(R). |
SUB M | 10010110 | 1 | 2 | (A) (A)-M(HL) |
SUI data | 11010110 | 2 | 2 | A) (A)-(байт2). |
SBB R | 10011SSS | 1 | 1 | (A) (A)-(R)-(C) |
SBB M | 10011110 | 1 | 2 | (A) (A)-M(HL)-(C) |
SBI data | 11011110 | 2 | 2 | (A) (A)-(байт2)-(C). |
INR R | 00DDD100 | 1 | 1 | (R) (R)+1. Флаг C не устанавливается |
INR M | 00110100 | 1 | 3 | M(HL) M(HL)+1. Флаг C не устанавливается |
INX RP | 00RP0011 | 1 | 1 | (RP) (RP)+1. Флаги не устанавливается |
DCR R | 00DDD101 | 1 | 1 | (R) (R)-1. Флаг C не устанавливается |
DCR M | 00110101 | 1 | 3 | M(HL) M(HL)-1. Флаг C не устанавливается |
DCX RP | 00RP1011 | 1 | 1 | (RP) (RP)-1 Флаги не устанавливается |
Дата добавления: 2015-04-25; просмотров: 843;