Команды условного и безусловного переходов
Система команд МП КР580ВМ80
Символы и сокращения, применяемые при описании команд и составлении программ
Символ | Сокращение |
ADDR | 16-битовый адрес |
DATA | 8-битовые данные |
DATA 16 | 16-битовые данные |
PORT | 8-битовый адрес УВВ (устройства ввода-вывода) |
BYTE 2 | Второй байт команды |
BYTE 3 | Третий байт команды |
R, R1, R2 | Один из регистров: A, B, C, D, E, H, L |
RP | Одна из регистровых пар: В - задает пару ВС; D - задает пару DE; H – задает пару HL |
RH | Первый регистр пары |
RL | Второй регистр пары |
Λ | Логическое умножение |
V | Логическое сложение |
Сложение по модулю два | |
М | Ячейка памяти, адрес которой задаёт содержимое регистровой пары HL, т. е. М = (HL) |
Команды передачи данных, ввода-вывода и работы со стеком
Команды передачи данных служат для пересылки данных между следующими устройствами:
- регистр – регистр;
- регистр – память;
- данные, содержащиеся в команде, - регистр;
- данные, содержащиеся в команде, - память.
Команды передачи данных
Могут быть однобайтовыми, двухбайтовыми и трехбайтовыми. Эти команды не оказывают воздействия на флаги условий.
Однобайтные
MOV R1, R2 –пересылка данных из регистра в регистр. В качестве регистров может быть использован любой из регистров A, B, C, D, E, H, L. R1 ß R2
MOV R, M – пересылка данных из памяти в регистр. (М - ячейка памяти, адрес которой указан в регистровой паре HL). R ß (HL).
MOV M, R – пересылка данных из регистра в память. (HL) ß R.
Х байтовые
MVI R, DATA – пересылка непосредственная. Содержимое второго байта команды пересылается в регистр R. R ß (BYTE 2).
MVI M, DATA – пересылка в память непосредственная. (HL) ß (BYTE 2).
Х байтовые
LXI RP, DATA 16 – непосредственная загрузка регистровой пары.
(RH) ß (BYTE3), (RL) ß (BYTE2).
LDA ADDR – прямая загрузка А. Cодержимое ЯП, адрес которой указан во втором и третьем байтах команды, загружается в А. A ß [(BYTE3, BYTE2)].
STA ADDR – прямая запись содержимого А в ячейку памяти, адрес которой указан во втором и третьем байтах команды. [(BYTE3, BYTE2)] ß А.
Однобайтовые
STAX – косвенная загрузка А в память. Содержимое А пересылается в ЯП, адрес которой указан в паре регистров (RP). Может быть указана только пара В и D. (RP) ß A.
LDAX – косвенная загрузка А. Содержимое ЯП, адрес которой указан в регистровой паре (RP), пересылается в А. Может быть указана только пара В и D. А ß(RP).
Команды ввода-вывода
Для обмена данными с процессором внешние устройства имеют на своих входах и выходах регистры, называемые портами ввода-вывода. Оказывают влияние на флаги
Х байтовые
IN PORT - команда ввода данных предназначена для ввода данных из входного порта в А. Команда двухбайтовая. А ß (PORT)
OUT PORT - команда вывода данных предназначена для вывода данных из А в выходной порт. Команда двухбайтовая. (PORT) ß А.
Команды работы со стеком
Однобайтовые
PUSH RP – загрузка в стек содержимого пары регистров
PUSH PSW - загрузка в стек слово состояния программы.
POP RP – считать из стека содержимое пары регистров.
POP PSW - считать из стека слова состояния программы.
XTHL – обмен содержимого верхушки стека и содержимого регистров H и L.
(L) ↔ (SP)
(H) ↔ (SP) + 1
SPHL – пересылка содержимого регистров H и L в указатель стека.
(SP) ↔ (H)(L).
Команды обработки данных
К этим командам относятся команды выполнения арифметических операций и команды выполнения логических операций.
Арифметические команды
Команды этой группы выполняют арифметические операции над данными в регистрах и памяти. Эти команды воздействуют на флаги состояний стандартным образом.
Однобайтовые
ADD R – команда сложения содержимого А с содержимым регистра. А ß А + R
ADD M – команда сложения содержимого А с содержимым ЯП, адрес которой находится в регистровой паре HL. А ß A + (HL)
Х байтовые
ADI DATA – непосредственное сложение. А ß А + (ВYTE2).
Однобайтовые
ADC R - сложение содержимого регистра с А с переносом. A ß A + R + (CY)
ADС M - сложение содержимого памяти с А переносом.
ACI - сложение константы с А с переносом АßА + (ВYTE2) + (CY)
SUB R – команда вычитания содержимого регистра из содержимого А. А ß А - R
SUB M – команда вычитания содержимого ЯП из содержимого А. A ß A - (HL)
Х байтовые
SUI DATA – непосредственное вычитание. А ß А - (ВYTE2).
Однобайтовые
SBB R – вычитание содержимого регистра и бита переноса. A ß A – R - (CY).
SBB M – вычитание содержимого ЯП и бита переноса. A ß A – (HL) – (CY).
SBB R - вычитание регистра с заёмом (уменьшаемое меньше вычитаемого).
A ß A - R - (CY)
SBB М - вычитание памяти с заёмом. А ß А - (HL) - (CY)
Х байтовые
SBI DATA – непосредственное вычитание с заёмом. A ß A - (BYTE2) – (CY).
Однобайтовые
INR R – увеличение содержимого регистра на 1. R ß R + 1.
INR M – увеличение содержимого памяти на 1. (НL) ß (НL) + 1.
DCR R – уменьшение содержимого регистра на 1. R ß R – 1.
DCR M – уменьшение содержимого памяти на 1. (HL) ß (HL) – 1.
INX RP – увеличение содержимого регистровой пары на 1.
[(RH)(RL)] ß[(RH)(RL)] + 1.
DCX RP – уменьшение содержимого регистровой пары на 1.
[(RH) (RL)] ß [(RH) (RL)] – 1.
DAD RP – сложение содержимого пары регистров с содержимым регистров H и L.
[(H)(L)] ß [(H)(L)] + [(RH)(RL)].
Команды сложения и вычитания с учётом переносов (заёма) позволяют организовать обработку многобайтовых чисел последовательно по байтам, которые хранятся в смежных ячейках памяти и адресуются, начиная с младшего.
Логические команды
Команды этой группы выполняют поразрядные логические операции над данными, хранящимися в регистрах и ЯП и флагами. Все команды воздействуют на флаги.
Однобайтовые
ANA R – операция конъюнкция (логическое умножение) над содержимым регистра и А.
А ß (А Λ R).
ANA M – операция конъюнкция над содержимым ЯП и А. Аß [А Λ (HL)].
Х байтовая
ANI DATA - непосредственная операция конъюнкция. А ß (А Λ ВYTE2).
Однобайтовые
XRA R – регистровая операция сложение по модулю 2 (операция неравнозначности).
(А) ß (А R).
XRA M – операция сложение по модулю 2 над памятью. .
Х байтовая
XRI DATA – непосредственная операция сложение по модулю 2. (A)ß [(A) (BYTE2)].
Однобайтовые
ORA R – регистровая операция дизъюнкция (логическое сложение). A ß (A V R).
ORA M – операция дизъюнкция над памятью. (A)ß [A V (HL)].
Х байтовые
ORI DATA – непосредственная операция дизъюнкция. A ß (A V BYTE2).
Однобайтовые
CMP R – сравнение содержимого регистра с содержимым А. А - R, содержимое А не изменяется.
CMP M – сравнение содержимого ЯП с содержимым А. A - (HL), содержимое А не изменяется.
Х байтовая
CPI DATA – непосредственное сравнение. А – (ВYTE2), содержимое А не изменяется.
Однобайтовые
CMA – инвертирование А. A ß .
RLC - циклический сдвиг содержимого А на один разряд влево.
RRC - циклический сдвиг содержимого А на один разряд вправо.
Команды управления
Команды этой группы предназначены для управления работой МП.
EI – разрешить прерывание.
DI – запретить прерывание.
Однобайтовые
HLT – останов выполнения текущей программы до тех пор пока не появится запрос на прерывание от устройств ввода вывода.
NOP – пустая операция. Команда используется для организации временных задержек.
Команды условного и безусловного переходов
Для организации ветвления используются команды перехода, позволяющие изменить последовательность выполнения команд программы за счет выполнения безусловных или условных переходов.