
- •А.2. Символы и сокращения
- •А.З. Форматы команд и данных
- •А.4. Способы адресации
- •А.5. Флаги условий
- •А.6. Справочник по системе команд
- •А.6.1. Команды пересылки данных
- •Xchg (обмен регистров н и l с регистра-ми d и е)
- •А.6.2. Арифметические команды
- •Inr r (увеличение регистра)
- •Inx rр (увеличение регистровой пары)
- •А.6.3. Логические команды
- •А.6.4. Команды перехода
- •А.6.5. Команды работы со стеком, ввод-вывод и управление процессором
- •Xthl (обмен верхушки стека с регистровой парой h-l)
А.6.4. Команды перехода
Команды этой группы прерывают последовательное выполнение команд микропроцессора. Ни одна из команд перехода не воздействует на флаги условий.
Существует два типа команд перехода: условные и безусловные. Команды безусловного перехода выполняют лишь специальную операцию над регистром PC (счетчиком команд). Команды условного перехода для определения своего действия проверяют состояние одного из четырех флагов условий. Допустимые в командах этой группы условия могут быть определены следующим образом:
Условия ССС
NZ-не нуль (Z = 0) 000
Z-нуль (Z=l) 001
NC-нет переноса (CY = 0) 010
С-перенос (CY=12' 011
РО-нечетный (Р = 0) 100
РЕ-четный (Р=1) 101
Р-положительный (S = 0) 110
М - отрицательный (S=1) 111
JMP, адрес (безусловный переход)
(PC) ← (байт 3) (байт 2)
Управление передается на команду, адрес которой находится во втором и третьем байтах этой команды.
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
Младшие разряды адреса |
|||||||
Старшие разряды адреса |
Циклов: 3
Состояний: 10
Адресация: непосредственная
Флаги: не изменяются
J условие, адрес (условный переход)
если (ССС), то (PC) ← (байт 3) (байт 2)
Если указанное условие истинно, то управление передается команде, адрес которой находится во втором и третьем байтах этой команды, в противном случае выполняется команда, следующая за данной.
1 |
1 |
С |
С |
С |
0 |
1 |
0 |
Младшие разряды адреса |
|||||||
Старшие разряды адреса |
Циклов: 2/3(8085), 3(8080)
Состояний: 7/10(8085), 10(8080)
Адресация: непосредственная
Флаги: не изменяются
CALL, адрес (вызов подпрограммы)
((SP)-1) ← (PCH)
((SP)-2) ← (PCL)
(SP) ← (SP)-2
(PS) ← (байт 3) (байт 2)
Старшие восемь разрядов адреса следующей команды записываются в ячейку памяти, адрес которой на 1 меньше содержимого указателя стека. Младшие восемь разрядов адреса следующей команды записываются в ячейку, адрес которой на 2 меньше содержимого указателя стека. Содержимое регистра SP уменьшается на 2. Управление передается команде, адрес которой находится во втором и третьем байтах этой команды.
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
Младшие разряды адреса |
|||||||
Старшие разряды адреса |
Циклов: 5
Состояний: 18(8085), 17(8080)
Адресация: непоср./регистр. косвенная
Флаги: не изменяются
С условие, адрес (условный вызов подпрограммы)
если (ССС), то
((SP)-1)←(PCH)
((SP)-2) ← (PCL)
(SP) ← (SP)-2
(PC) ← (байт 3) (байт 2)
Если указываемое условие истинно, то команда исполняется так же, как и команда CALL (см. выше), в противном случае управление передается на следующую за этой команду.
1 |
1 |
С |
С |
С |
1 |
0 |
0 |
Младшие разряды адреса |
|||||||
Старшие разряды адреса |
Циклов: 2/5(8085), 3/5(8080)
Состояний: 9/18(8085), 11/17(8080)
Адресация: непоср./регистр. косвенная
Флаги: не изменяются
RET (возврат из подпрограммы)
(PCL) ← ((SP))
(PCH) ← ((SP)+1)
(SP) ← (SP) + 2
Содержимое ячейки памяти, адрес которой находится в регистре SP, заносится в младшие разряды регистра PC. Содержимое ячейки памяти, адрес которой на 1 больше содержимого регистра SP, заносится в старшие восемь разрядов регистра PC. Содержимое регистра SP увеличивается на 2.
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
Циклов: 3
Состояний: 10
Адресация: регистровая косвенная
Флаги: не изменяются
R условие (условный возврат из подпрограммы) если (ССС), то
(PCL) ← ((SP))
(PCH) ← ((SP)+1)
(SP) ← (SP) + 2
Если указанное условие истинно, то команда исполняется так же, как и команда RET (см. выше), в противном случае управление передается на следующую за этой команду.
1 |
1 |
С |
С |
С |
0 |
0 |
0 |
Циклов: 1/3
Состояний: 6/12(8085), 5/11(8080)
Адресация: регистровая косвенная
Флаги: не изменяются
RST n (программное прерывание)
((SP)-1) ← (PCH)
((SP)-2) ← (PCL)
(SF) ← (SP)-2
(PC) ← 8*(NNN)
Старшие восемь разрядов адреса следующей команды записываются в ячейку памяти, адрес которой на 1 меньше содержимого указателя стека. Младшие восемь разрядов адреса следующей команды записываются в ячейку, адрес которой на 2 меньше содержимое SР уменьшается на 2. Управление передается команде, адрес которой определяется как NNN*8.
1 |
1 |
N |
N |
N |
1 |
1 |
1 |
Циклов: 3
Состояний: 12(8085), 11(8080)
Адресация: регистровая косвенная
Флаги: не изменяются
Счетчик адреса после выполнения команды:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
N |
N |
N |
0 |
0 |
0 |
PCHL (переход по регистрам Н и L косвенный - занесение регистровой пары H-L в регистр PC)
(РСН) ← (Н)
(PCL) ← (L)
Содержимое регистра Н заносится в старшие восемь разрядов регистра PC. Содержимое регистра L заносится в младшие восемь разрядов регистра PC.
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
Циклов: 1
Состояний: 6(8085), 5(8080)
Адресация: регистровая
Флаги: не изменяются