- •Тема 2.5 Основы программирования процессора
- •1 Оперативная память, регистры, представление данных
- •1.Программная модель микропроцессорной системы на основе мп кр580вм80
- •2.Формат данных и структура команд языка ассемблер
- •3 Формат команд
- •4 Методы адресации
- •5 Система команд
- •6 Команды передачи данных и ввода-вывода
- •6.1 Команды передачи данных
- •6.2 Команды ввода-вывода
- •6.3 Команды работы со стеком
- •7 Команды обработки данных
- •Арифметические команды
- •Логические команды
- •8 Команды управления
- •1.Команды условного и безусловного переходов
- •2.Команды вызова подпрограмм и возврата из них, программное прерывание
- •9 Составление программ
Логические команды
Команды этой группы выполняют поразрядные логические операции над данными, хранящимися в регистрах и ЯП и флагами. Все команды воздействуют на флаги.
Однобайтовые
ANA R – операция конъюнкция (логическое умножение) над содержимым регистра и А.
А (А Λ R).
ANA M – операция конъюнкция над содержимым ЯП и А. А [А Λ (HL)].
2-х байтовая
ANI DATA - непосредственная операция конъюнкция. А (А Λ ВYTE2).
Однобайтовые
XRA R – регистровая операция сложение по модулю 2 (операция неравнозначности).
(А) (А R).
XRA
M
– операция сложение по модулю 2 над
памятью.
.
2-х байтовая
XRI DATA – непосредственная операция сложение по модулю 2. (A) [(A) (BYTE2)].
Однобайтовые
ORA R – регистровая операция дизъюнкция (логическое сложение). A (A V R).
ORA M – операция дизъюнкция над памятью. (A) [A V (HL)].
2-х байтовые
ORI DATA – непосредственная операция дизъюнкция. A (A V BYTE2).
Однобайтовые
CMP R – сравнение содержимого регистра с содержимым А. А - R, содержимое А не изменяется.
CMP M – сравнение содержимого ЯП с содержимым А. A - (HL), содержимое А не изменяется.
2-х байтовая
CPI DATA – непосредственное сравнение. А – (ВYTE2), содержимое А не изменяется.
Однобайтовые
CMA
– инвертирование А. A
.
RLC - циклический сдвиг содержимого А на один разряд влево.
RRC - циклический сдвиг содержимого А на один разряд вправо.
8 Команды управления
Команды этой группы предназначены для управления работой МП.
EI – разрешить прерывание.
DI – запретить прерывание.
Однобайтовые
HLT – останов выполнения текущей программы до тех пор пока не появится запрос на прерывание от устройств ввода вывода.
NOP – пустая операция. Команда используется для организации временных задержек.
1.Команды условного и безусловного переходов
Для организации ветвления используются команды перехода, позволяющие изменить последовательность выполнения команд программы за счет выполнения безусловных или условных переходов.
При выполнения команд безусловного перехода текущая последовательность команд нарушается и происходит переход к выполнению другой последовательности команд, указанной в команде. Для этого перехода необходимо изменить адрес обращения за очередной командой в счетчике команд.
3-х байтовая
JMP ADDR - безусловный переход. Управление передается команде, адрес которой указан во втором и третьем байтах команды перехода. (РС) [(ВYTE3)(ВYTE2)].
При выполнении команд условного перехода дальнейший выбор одной из последовательности команд зависит одного из четырех флагов: нуля (Z), знака результата (S), четности (P), переноса (C), т. е. сначала проверяется состояние одного из четырех флагов МП на выполнение указанного в команде условия, а затем происходит выполнение команды. При выполнении условия осуществляется переход по новому адресу, в противном случае выполняется следующая команда. Для удобства программирования предусмотрены проверки условий по единичным и нулевым значениям флагов CY (C), Z, S, P. Мнемоника команд условного перехода образуется добавлением буквы J (условие) к названию условия, а затем указывается адрес, куда следует перейти, если условие выполнено.
Все команды 3-х байтовые.
Условия переходов приведены в таблице 1
Таблица 1
-
Условие
Мнемокод команды
NZ – не ноль (Z=0)
JNZ ADDR
Z –ноль (Z=1)
JZ ADDR
NC нет переноса (С=0)
JNC ADDR
С – есть перенос (С=1)
JC ADDR
РО – нечетный результат (Р = 0)
JPO ADDR
РЕ – четный результат (Р = 1)
JPE ADDR
Р – плюс (S = 0)
JP ADDR
M – минус (S = 1)
JM ADDR
