Команды логических операций
Команды передачи данных
Формат, байтов | Время тактов | Код | Мнемокод | Наименование команды | Описание операций |
* | MOV R1, R2 | Пересылка данных из регистра в регистр | Байт из регистра R2 копируется в регистр R1 | ||
* | MOV R, M | Пересылка данных из памяти в регистр | Байт из ячейки памяти, адрес которой хранится в регистровой паре HL, копируется в регистр R | ||
* | MOV M, R | Пересылка данных из регистра в память | Байт из регистра R копируется в ячейку памяти, адрес которой хранится в регистровой паре HL | ||
* | MVI R, B2 | Пересылка непосредственных данных в регистр | Байт информации (2-й байт команды) записывается в указанный регистр | ||
MVI M, B2 | Пересылка непосредственных данных в память | Байт информации (2-й байт команды) записывается в ячейку памяти, адрес которой хранится в паре HL | |||
* | LXI RR, B2B3 | Непосредственная загрузка регистровой пары | В старший регистр регистровой пары записывается 3-й байт B3 команды, а в младший регистр – 2-й байт B2 | ||
* | LXI SP, B2B3 | Непосредственная загрузка регистра указателя стека | В старший байт регистра указателя стека записывается 3-й байт B3 команды, а в младший байт – 2-й байт B2 | ||
STA B2B3 | Прямое запоминание содержимого регистра A | Содержимое регистра A записывается по адресуB2B3 | |||
3A | LDA B2B3 | Прямая загрузка A-регистра | В регистр A записываются данные, хранящиеся по адресу B2B3 | ||
* | LDAX RR | Косвенная загрузка A-регистра | В регистр A записываются данные, адрес которых указан в регистровой паре RR | ||
* | STAX RR | Косвенное запоминание содержимого регистра A | Содержимое регистра A записывается по адресу, находящемуся в регистровой паре RR | ||
2A | LHLD B2B3 | Прямая загрузка H-пары регистров | В регистр L записываются данные из адреса B2B3, а в регистр H – из адреса B2B3+1 | ||
SHLD B2B3 | Прямое запоминание содержимого H-пары регистров | Из регистра L данные записывается по адресу B2B3, а из регистра H - по адресу B2B3+1 | |||
EB | XCHG | Обмен между H- и D-парами регистров | Содержимое регистров H и D, L и E соответственно меняются местами |
Команды обработки данных
Команды обработки данных выполняют арифметические операции над содержимым А-регистра и регистра R, регистровой парой, ячейкой памяти или непосредственными данными. Выполнение почти всех команд изменяет значение регистра флагов F.
Команда DAA – десятичная коррекция содержимого регистра преобразовывает данные регистра А по следующему принципу:
Если младшая тетрада А-регистра больше 9 или флаг АС=1, то содержимое А-регистра увеличивается на 6, а к старшей тетраде прибавляется 1. Затем, если старшая тетрада А-регистра больше 9 или флаг CY=1, то содержимое А-регистра увеличивается на 60
Формат, байтов | Время тактов | Код | Мнемо- код | Наименование команды | Описание операции | Биты признаков | ||||
S | Z | AC | P | C | ||||||
* | ADD R | Сложение содержимого регистра и содержимого А-регистра | В А-регистр записывается результат суммы содержимого А-регистра и содержимого R-регистра | + | + | + | + | + | ||
ADD M | Сложение содержимого ячейки памяти и содержимого А-регистра | В А-регистр записывается результат суммы содержимого А-регистра и содержимого ячейки памяти, адрес которой хранится в (H,L)-паре | + | + | + | + | + | |||
C6 | ADI B2 | Сложение непосредственных данных и содержимого А-регистра | В А-регистр записывается результат суммы содержимого А-регистра и непосредственных данных(B2) | + | + | + | + | + | ||
* | ADC R | Сложение содержимого регистра и содержимого А-регистра с переносом | В А-регистр записывается результат суммы содержимого А-регистра, содержимого R-регистра и значения флага (CY) | + | + | + | + | + | ||
8E | ADC M | Сложение содержимого ячейки памяти и содержимого А-регистра с переносом | В А-регистр записывается результат суммы содержимого А-регистра, содержимого ячейки памяти, адрес которой хранится в(H,L)-паре, и значения флага (CY) | + | + | + | + | + | ||
CE | ACI B2 | Сложение непосредственных данных и содержимого А-регистра с переносом | В А-регистр записывается результат суммы содержимого А-регистра, непосредственных данных(B2) и значения флага (CY) | + | + | + | + | + | ||
* | SUB R | Вычитание содержимого регистра из содержимого А-регистра | В А-регистр записывается результат вычитания от содержимого А-регистра содержимого R-регистра | + | + | + | + | + | ||
SUB M | Вычитание содержимого ячейки памяти из содержимого А-регистра | В А-регистр записывается результат вычитания от содержимого А-регистра содержимого ячейки памяти, адрес которой хранится в (H,L)-паре | + | + | + | + | + | |||
D6 | SUI B2 | Вычитание непосредственных данных из содержимого А-регистра | В А-регистр записывается результат вычитания от содержимого А-регистра непосредственных данных (B2) | + | + | + | + | + | ||
* | SBB R | Вычитание содержимого регистра из содержимого А-регистра с заемом | В А-регистр записывается результат вычитания от содержимого А-регистра содержимого R-регистра и значения флага (CY) | + | + | + | + | + | ||
9E | SBB M | Вычитание содержимого ячейки памяти из содержимого А-регистра с заемом | В А-регистр записывается результат вычитания от содержимого А-регистра содержимого ячейки памяти, адрес которой хранится в (H,L)-паре, и значения флага (CY) | + | + | + | + | + | ||
DE | SBI B2 | Вычитание непосредственных данных из содержимого А-регистра с заемом | В А-регистр записывается результат вычитания от содержимого А-регистра непосредственных данных (B2) и значения флага (CY) | + | + | + | + | + | ||
* | INR R | Инкрементирование содержимого регистра | Содержимое регистра (R) увеличивается на 1 | + | + | + | + | - | ||
INR M | Инкрементирование содержимого ячейки памяти | Содержимое ячейки памяти, адрес которой находиться в (H,L)-паре, увеличивается на 1 | + | + | + | + | - | |||
* | INX RR | Инкрементирование содержимого регистровой пары | Содержимое (RR)-пары увеличивается на 1 | - | - | - | - | - | ||
* | DCR R | Декрементирование содержимого регистра | Содержимое регистра (R) уменьшается на 1 | + | + | + | + | - | ||
DCR M | Декрементирование содержимого ячейки памяти | Содержимое ячейки памяти, адрес которой находиться в (H,L)-паре, уменьшается на 1 | + | + | + | + | - | |||
* | DCX RR | Декрементирование содержимого регистровой пары | Содержимое (RR)-пары уменьшается на 1 | - | - | - | - | - | ||
* | DAD RR | Сложение содержимых регистровой пары и Н-пары регистров | В (H,L)-пару заносится результат суммы между содержимым (H,L)-пары и (RR)-пары | - | - | - | - | + | ||
DAA | Десятичная коррекция содержимого А-регистра | Если младшая тетрада А-регистра больше 9 или флаг АС=1, то содержимое А-регистра увеличивается на 6. Затем - если старшая тетрада А-регистра больше 9 или флаг CY=1, то содержимое А-регистра увеличивается на 60h | + | + | + | + | + |
Команды логических операций
Команды логических операций выполняют логические операции над содержимым А-регистра и регистра R, ячейкой памяти или непосредственными данными.
Команды логических операций можно разделить на следующие группы:
· команды логической операции И (ANA, ANI);
· команды логической операции ИЛИ (ORA, ORI);
· команды логической операции исключающее ИЛИ (XRA, XRI);
· команды сравнения (CMP, CPI);
· команды циклических сдвигов (RAR, RAL, RLC, RRC);
· команды дополнений (CMA, CMC);
· команда установки признака переноса (STC).
Выполнение почти всех команд изменяет значение регистра флагов F.
Формат, байтов | Время тактов | Код | Мнемо- код | Наименование команды | Описание операции | Биты признаков | ||||
S | Z | AC | P | C | ||||||
* | ANA R | Поразрядное И над содержимым регистра и А-регистра | Осуществляется поразрядное выполнение логической операции И над содержимым регистра (R) и А-регистра | + | + | + | ||||
A6 | ANA M | Поразрядное И над содержимым ячейки памяти и А-регистра | Осуществляется поразрядное выполнение логической операции И над содержимым ячейки памяти, адрес которой хранится в (H,L)-паре и А-регистра | + | + | + | ||||
E6 | ANI B2 | Поразрядное И над непосредственными данными и содержимым А-регистра | Осуществляется поразрядное выполнение логической операции И над непосредственными данными (В2) и содержимым А-регистра | + | + | + | ||||
* | XRA R | Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым регистра и А-регистра | Осуществляется поразрядное выполнение логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым регистра (R) и А-регистра | + | + | + | ||||
AE | XRA M | Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым ячейки памяти и А-регистра | Осуществляется поразрядное выполнение логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым ячейки памяти, адрес которой хранится в (H,L)-паре и А-регистра | + | + | + | ||||
EE | XRI B2 | Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над непосредственными данными и содержимым А-регистра | Осуществляется поразрядное выполнение логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ над непосредственными данными (В2) и содержимым А-регистра | + | + | + | ||||
* | ORA R | Поразрядное ИЛИ над содержимым регистра и А-регистра | Осуществляется поразрядное выполнение логической операции ИЛИ над содержимым регистра (R) и А-регистра | + | + | + | ||||
B6 | ORA M | Поразрядное ИЛИ над содержимым ячейки памяти и А-регистра | Осуществляется поразрядное выполнение логической операции ИЛИ над содержимым ячейки памяти, адрес которой хранится в (H,L)-паре и А-регистра | + | + | + | ||||
F6 | ORI B2 | Поразрядное ИЛИ над непосредственными данными и содержимым А-регистра | Осуществляется поразрядное выполнение логической операции ИЛИ над непосредственными данными (В2) и содержимым А-регистра | + | + | + | ||||
* | CMP R | Сравнение содержимых регистра и А-регистра | Осуществляется "условное" вычитание (А)-(R) из А-регистра содержимое R-регистра | + | + | + | + | + | ||
BE | CMP M | Сравнение содержимых ячейки памяти и А-регистра | Осуществляется "условное" вычитание (А)-((H,L)) из А-регистра содержимое ячейки памяти, адрес которой хранится в (H,L)-паре | + | + | + | + | + | ||
FE | CPI B2 | Сравнение непосредственных данных с содержимым А-регистра | Осуществляется "условное" вычитание (А)-(В2) из А-регистра непосредственные данные | + | + | + | + | + | ||
RLC | Циклический сдвиг влево содержимого А-регистра | Разряды А-регистра смещаются влево на одну позицию. Старший разряд переходит в младший и отображается в флаге (CY) | - | - | - | - | + | |||
RAL | Циклический сдвиг влево содержимого А-регистра через перенос | Разряды А-регистра смещаются влево на одну позицию. Старший разряд переходит во флаг (CY), а содержимое флага (CY) - в младший разряд А-регистра | - | - | - | - | + | |||
0F | RRC | Циклический сдвиг вправо содержимого А-регистра | Разряды А-регистра смещаются вправо на одну позицию. Младший разряд переходит в старший и отображается в флаге (CY) | - | - | - | - | + | ||
1F | RAR | Циклический сдвиг вправо содержимого А-регистра через перенос | Разряды А-регистра смещаются вправо на одну позицию. Младший разряд переходит во флаг (CY), а содержимое флага (CY) - в старший разряд А-регистра | - | - | - | - | + | ||
2F | CMA | Дополнение содержимого А-регистра | Содержимое А-регистра поразрядно инвертируется | - | - | - | - | - | ||
3F | CMC | Дополнение содержимого признака переноса | Содержимое флага (CY) инвертируется | - | - | - | - | + | ||
STC | Установка в единицу признака переноса | В флаг (CY) записывается 1 | - | - | - | - |