Вопрос 21. Система команд МП ВМ80: классификация и общая характеристика.
Всего 244 команды. Из них 76 имеют свою мнемонику.
Команды делятся на:
1. команды перемещения данных.
2. команды арифметические.
3. команды поразрядной обработки данных.
4. команды передачи управления.
5. команды управления МП.
Команды пересылки данных – осуществляют перенос данных между объектами (регистры, порты , ячейки памяти)
При перемещении данных они копируются. Команды перемещения не влияют на флаги.
В зависимости от того между какими объектами осуществляется перемещение выделяют термины:
Пересылка – между регистрами.
Запоминание – из регистров в память.
Загрузка регистра – перемещение из данных из памяти в регистр.
Эти команды деляться на:
Mov, MVI, LXI, LHLD, SHLD, LDA, STA, LDAX, STAX, SPHL, XCHG.
POP, PUSH, XTHL.
2. Арифметические команды.
Арифметические команды делятся на несколько групп:
ADD, ADI, ADC, ACI
SUB, SUI, SBB, SBI
DAD
INR, INX
DCR, DCX
Все эти команды обычно изменяют флаги МП.
3. Команды поразрядной обработки данных.
ANA, ANI – лог И
ORA, ORI – лог ИЛИ
XRA, XRI – лог искл. ИЛИ
СМА – лог. инвертирование.
RLC, RRC – сдвиг влево, сдвиг вправо
RAL, RАR – арифметический сдвиг влево, вправо.
CMP, CPI
STC – установить флаг переноса.
CTC – инвертировать флаг переноса.
Все эти команды обычно изменяют флаги МП.
Команды могут быть безусловными или условными. Безусловные команды выполняются всегда, условные только при выполнении условия содержащегося в команде. Условие в МП-рах это признаки, которые фиксируются флагами.
Условия, которые могут выполняться в МП.
Условие, проверяемое в команде |
Проверяемый флаг |
Мнемоника условия |
Неравенство нулю |
Z=0 |
NZ |
Равенство нулю |
Z=1 |
Z |
Наличие переноса |
CY=1 |
C |
Отсутствие переноса |
CY=0 |
NC |
Нечетность |
P=0 |
PO |
Четность |
P=1 |
PE |
Положительность |
S=0 |
P |
Отрицательность |
S=1 |
M |
Команды перехода позволяют произвольно изменять адрес выполняемой команды.
JMP ADR; (PC)<-ADR переход на адрес, указанный в (РС)
PCHL (PC)<-(HL) происходит переход по адресу, находящемуся в (HL)
JNZ, JZ, JNZ, JC, JNC, JPO, JPE, JP, JM
Если условие выполняется, то (РС)<-ADR, если нет то (РС)<-(РС)+3, так команда перехода трехбайтная.
Команды вызова подпрограмм. В виде ПП организовывают блоки программы, которые часто повторяются. При вызове ПП необходимо: указать МП начальный адрес ПП, обеспечить возврат в основную программу после выполнения.
Для обеспечения возврата необходимо хранить адрес возврата. Он находиться в стеке. При переходе к ПП МП запоминает в SP адрес команды, которую он должен выполнить после завершения ПП. Это будет адрес возврата. Затем в РС загружается адрес начала ПП, который указан в команде вызова. В конце ПП стоит команда возврата, по которой МП извлекает из вершины стека двухбайтное число и помещает его в РС. Происходит возврат в основную программу.
Команды вызова бывают условные и безусловные.
CALL ADR; (PC)<-ADR
RST N, N – номер рестарта (0-7), косвенно содержит адрес начала подпрограммы обработки прерывания.
Команды возврата из подпрограммы.
Команды управления МП. Они управляют МП, а не данными.
EI – разрешение прерываний. После выполнения МП реагирует на запросы прерываний. Она устанавливает триггер разрешения прерываний INTE=1
DI – запрещение прерываний, триггер разрешения прерываний INTЕ сбрасывается.
HLT – остановка работы МП. После этой команды содержимое РС не меняется.
NOP – нет операции, пустая команда. Эта команда не производит никаких действий, только увеличивает РС на 1. Она используется для временных задержек и для закрытия дыр в программе.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.