Операции ввода-вывода

Набор операций ввода-вывода по сравнению с системой команд микропроцессора Intel 8080 был существенно расширен.
Инструкции IN A,(n) и OUT (n),A – единственные команды ввода-вывода, реализованные в микропроцессоре 8080. Они обеспечивают соответственно ввод байта информации из порта и вывод информации в порт. Младший байт адреса порта содержится в коде команды – это константа n. Старший байт адреса порта содержится в аккумуляторе. (Микропроцессор 8080 всегда использовал 8-разрядный адрес порта, содержащийся в коде команды.) Значение, читаемое из порта инструкцией IN, заносится в аккумулятор; значение, заносимое в порт инструкцией OUT, находится в аккумуляторе. Эта пара инструкций на флажки влияния не оказывает.
Инструкции IN r,(C) и OUT (C),r осуществляют ввод байта из порта или его вывод в порт. Адрес порта находится в регистровой паре BC; данные, читаемые из порта или выводимые в порт, находятся в регистре r. Команда IN устанавливает или сбрасывает флажки S, Z и P/V в соответствии со значением прочитанного значения (флажок P/V является признаком чётности) и сбрасывает флажки H и N; значение флажка C не изменяется. Команда OUT на флажки влияния не оказывает. Заметим, что если в поле r кода команды IN задана комбинация 110, то прочитанное значение вызовет соответствующую установку или сброс флажков, но не будет сохранено. Действия микропроцессора для этой комбинации в команде OUT в фирменной документации не определены. По-видимому, в порт будет записано случайное значение.
Оставшиеся инструкции (INI, INIR, IND, INDR, OUTI, OTIR, OUTD и OTDR) обеспечивают ввод или вывод нескольких байтов информации. В регистровой паре HL содержится адрес области памяти, в которую будут заноситься вводимые данные или из которой будут извлекаться выводимая информация. После ввода или вывода очередного байта информации содержимое HL увеличивается или уменьшается на 1 (если третья буква мнемоника кода команды – I, то осуществляется инкремент этой регистровой пары; если D – то декремент). В качестве адреса порта используется содержимое регистровой пары BC. Кроме того, содержимое регистра B используется в качестве счётчика; оно уменьшается на единицу после ввода или вывода каждого байта информации. Инструкции, мнемоники которых заканчиваются на букву R (INIR, INDR, OTIR и OTDR), производят ввод или вывод данных до тех пор, пока регистр B не будет обнулён. Инструкции, мнемоники которых не содержат буквы R (INI, IND, OUTI и OUTD), выполняют одиночную операцию ввода или вывода байта. После выполнения этих инструкций значение флажка C не изменяется; флажок N устанавливается; флажок Z сбрасывается, если содержимое регистра B отлично от нуля, и устанавливается при обнулении регистра B (таким образом, в инструкциях с автоматическим повторением – INIR, INDR, OTIR и OTDR – флажок Z будет установлен); состояние остальных флажков непредсказуемо.
Прочие операции

Инструкции CCF и SCF изменяют состояние флажка C: первая меняет его состояние на противоположное, а вторая устанавливает в единицу.
Инструкция NOP не выполняет никаких действий.
Инструкция HALT переводит микропроцессор в состояние останова. Находясь в состоянии останова, процессор выдаёт сигнал HALT#, однако продолжает выполнять циклы регенерации памяти, а также обрабатывать запросы захвата шины и прерываний. Выход из состояния останова возможен с помощью прерывания (маскируемые прерывания при этом должны быть разрешены), а также с помощью сброса.
Инструкции DI и EI соответственно запрещают и разрешают маскируемые прерывания. Их функция заключается в соответственно сбросе и установке флажков IFF1 и IFF2, управляющих прерываниями.
Инструкции IM устанавливают соответствующий режим обработки маскируемых прерываний. В процессе сбора устанавливается режим 0, обеспечивающий совместимость (правда, как уже указывалось, неполную) с механизмом обработки прерываний микропроцессора Intel 8080.
Приложение 1. Сводка инструкций микропроцессора Z80
В таблице используются следующие обозначения:
– r, r1, r2 – регистры общего назначения. В кодах операций регистрам соответствуют следующие битовые значения: 000 – B, 001 – C, 010 – D, 011 – E, 100 – H, 101 – L, 111 – A. Значение 110 применяется для обозначения операнда в памяти, адрес которого содержится в регистровой паре HL (см. ниже). В языке ассемблера микропроцессора 8080 для этот случай обозначался “псевдорегистром” M (например, инструкция процессора Z80 LD A,(HL) соответствует инструкции процессора 8080 MOV A,M);
– (IX), (IY), (BC), (DE), (HL) – операнд в памяти, адрес которого содержится в соответствующем 16-разрядном регистре или регистровой паре;
– (IX+d), (IY+d) – операнд в памяти; его адрес равен сумме содержимого указанного индексного регистра и 8-разрядной константы d, являющейся частью кода команды;
– n – 8-разрядная константа, являющаяся частью кода команды;
– nn – 16-разрядная константа, являющаяся частью кода команды (в памяти младший байт предшествует старшему);
– e – 8-разрядное смещение относительно адреса следующей команды;
– (aa) – операнд в памяти по адресу aa, являющемуся частью кода команды;
– dd – 16-разрядный регистр SP или одна из регистровых пар. Им соответствуют следующие коды: 00 – BC, 01 – DE, 10 – HL, 11 – SP;
– pp – одна из 16-разрядных пар или регистров: 00 – BC, 01 – DE, 10 – IX, 11 – SP;
– qq – одна из 16-разрядных регистровых пар: 00 – BC, 01 – DE, 10 – HL, 11 – AF;
– ss – одна из 16-разрядных пар или регистров: 00 – BC, 01 – DE, 10 – IY, 11 – SP;
– x – номер одной из восьми подпрограмм, переход к которым осуществляется с помощью инструкции RST;
– (p) – порт ввода-вывода с адресом p;
– b – номер разряда в диапазоне 0–7;
– rb – разряд b регистра r;
– (HL)b, (IX+d)b, (IY+d)b – разряд b ячейки памяти с соответствующим адресом;
– cc – условие перехода, кодируемое следующим образом: NZ (000) – не нуль, не равно, Z=0; Z (001) – нуль, равно, Z=1; NC (010) – отсутствие переноса или заёма, C=0; C (011) – наличие переноса или заёма, C=1; PO (100) – нечётный результат, P/V=0; PE (101) – чётный результат, P/V=1; P (110) – знак “плюс”, S=0; M (111) – знак “минус”, S=1.
– * – флаг устанавливается по результатам выполненной операции;
– ? – значение флага после выполнения операции не определено;
– & – операция “логическое И”;
– | – операция “логическое ИЛИ”;
– Å – операция “исключающее ИЛИ”.
|
Мнемоника |
Операция |
Флаги |
Код операции |
Кол-во байтов |
Кол-во циклов |
Кол-во тактов |
||||||||
|
S |
Z |
H |
P/V |
N |
C |
76 |
543 |
210 |
шестн. |
|||||
|
Однобайтовые операции пересылки |
||||||||||||||
|
LD r1,r2 |
r1←r2 |
– |
– |
– |
– |
– |
– |
01 |
r1 |
r2 |
1 |
1 |
4 |
|
|
LD r,n |
r←n |
– |
– |
– |
– |
– |
– |
00 |
r |
110 |
2 |
2 |
7 |
|
|
|
n |
|||||||||||||
|
LD r,(HL) |
r←(HL) |
– |
– |
– |
– |
– |
– |
01 |
r |
110 |
1 |
2 |
7 |
|
|
LD r,(IX+d) |
r←(IX+d) |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
|
01 |
r |
110 |
|||||||||||
|
|
d |
|||||||||||||
|
LD r,(IY+d) |
r←(IY+d) |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
|
01 |
r |
110 |
|||||||||||
|
|
d |
|||||||||||||
|
LD (HL),n |
(HL) ←n |
– |
– |
– |
– |
– |
– |
00 |
110 |
110 |
36 |
2 |
3 |
10 |
|
n |
||||||||||||||
|
LD (IX+d),n |
(IX+d)←n |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
4 |
5 |
19 |
|
00 |
110 |
110 |
36 |
|||||||||||
|
d |
||||||||||||||
|
n |
||||||||||||||
|
LD (IY+d),n |
(IY+d)←n |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
4 |
5 |
19 |
|
00 |
110 |
110 |
36 |
|||||||||||
|
d |
||||||||||||||
|
n |
||||||||||||||
|
LD A,(BC) |
A←(BC) |
– |
– |
– |
– |
– |
– |
00 |
001 |
010 |
0A |
1 |
2 |
7 |
|
LD A,(DE) |
A←(DE) |
– |
– |
– |
– |
– |
– |
00 |
011 |
010 |
1A |
1 |
2 |
7 |
|
LD A,(aa) |
A←(aa) |
– |
– |
– |
– |
– |
– |
00 |
111 |
010 |
3A |
3 |
4 |
13 |
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD (BC),A |
(BC)←A |
– |
– |
– |
– |
– |
– |
00 |
000 |
010 |
02 |
1 |
2 |
7 |
|
LD (DE),A |
(DE)←A |
– |
– |
– |
– |
– |
– |
00 |
010 |
010 |
12 |
1 |
2 |
7 |
|
LD (aa),A |
(nn)←A |
– |
– |
– |
– |
– |
– |
00 |
110 |
010 |
32 |
3 |
4 |
13 |
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD A,I |
A←I |
* |
* |
0 |
IFF2 |
0 |
– |
11 |
101 |
101 |
ED |
2 |
2 |
9 |
|
01 |
010 |
111 |
57 |
|||||||||||
|
LD A,R |
A←R |
* |
* |
0 |
IFF2 |
0 |
– |
11 |
101 |
101 |
ED |
2 |
2 |
9 |
|
01 |
011 |
111 |
5F |
|||||||||||
|
LD I,A |
I←A |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
2 |
9 |
|
01 |
000 |
111 |
47 |
|||||||||||
|
LD R,A |
R←A |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
2 |
9 |
|
01 |
001 |
111 |
4F |
|||||||||||
|
Двухбайтовые операции пересылки |
||||||||||||||
|
LD dd,nn |
dd←nn |
– |
– |
– |
– |
– |
– |
00 |
dd0 |
001 |
3 |
3 |
10 |
|
|
n |
||||||||||||||
|
n |
||||||||||||||
|
LD IX,nn |
IX←nn |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
4 |
4 |
14 |
|
00 |
100 |
001 |
21 |
|||||||||||
|
n |
||||||||||||||
|
n |
||||||||||||||
|
LD IY,nn |
IY←nn |
– |
– |
– |
– |
– |
– |
11 |
111 |
1-1 |
FD |
4 |
4 |
14 |
|
00 |
100 |
001 |
21 |
|||||||||||
|
n |
||||||||||||||
|
n |
||||||||||||||
|
LD HL,(aa) |
H←(nn+1) |
– |
– |
– |
– |
– |
– |
00 |
101 |
010 |
2A |
3 |
5 |
16 |
|
L←(nn) |
a |
|||||||||||||
|
a |
||||||||||||||
|
LD dd,(aa) |
dd[15:8]←(nn+1) |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
4 |
6 |
20 |
|
dd[7:0]←(nn) |
– |
– |
– |
– |
– |
– |
01 |
dd1 |
011 |
|||||
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD IX,(aa) |
IX[15:8]←(nn+1) |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
4 |
6 |
20 |
|
IX[7:0]←(nn) |
– |
– |
– |
– |
– |
– |
00 |
101 |
010 |
2A |
||||
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD IY,(aa) |
IY[15:8]←(nn+1) |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
4 |
6 |
20 |
|
IY[7:0]←(nn) |
– |
– |
– |
– |
– |
– |
00 |
101 |
010 |
2A |
||||
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD (aa),HL |
(nn+1)←H |
– |
– |
– |
– |
– |
– |
00 |
100 |
010 |
22 |
3 |
5 |
16 |
|
(nn)←L |
– |
– |
– |
– |
– |
– |
a |
|||||||
|
a |
||||||||||||||
|
LD (aa),dd |
(nn+1)←dd[15:8] |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
4 |
6 |
20 |
|
(nn)←dd[7:0] |
– |
– |
– |
– |
– |
– |
01 |
dd0 |
011 |
|||||
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD (aa),IX |
(nn+1)←IX[15:8] |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
4 |
6 |
20 |
|
(nn)←IX[7:0] |
– |
– |
– |
– |
– |
– |
00 |
100 |
010 |
22 |
||||
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD (aa),IY |
(nn+1)←IY[15:8] |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
4 |
6 |
20 |
|
(nn)←IY[7:0] |
– |
– |
– |
– |
– |
– |
00 |
100 |
010 |
22 |
||||
|
a |
||||||||||||||
|
a |
||||||||||||||
|
LD SP,HL |
SP←HL |
– |
– |
– |
– |
– |
– |
11 |
111 |
001 |
F9 |
1 |
1 |
6 |
|
LD SP,IX |
SP←IX |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
2 |
2 |
10 |
|
11 |
111 |
001 |
F9 |
|||||||||||
|
LD SP,IY |
SP←IY |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
2 |
2 |
10 |
|
11 |
111 |
001 |
F9 |
|||||||||||
|
PUSH qq |
(SP-2)←qq[7:0] |
– |
– |
– |
– |
– |
– |
11 |
qq0 |
101 |
1 |
3 |
11 |
|
|
(SP-1)←qq[15:8] |
||||||||||||||
|
SP←SP-2 |
||||||||||||||
|
PUSH IX |
(SP-2)←IX[7:0] |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
2 |
4 |
15 |
|
(SP-1)←IX[15:8] |
11 |
100 |
101 |
E5 |
||||||||||
|
SP←SP-2 |
||||||||||||||
|
PUSH IY |
(SP-2)←IY[7:0] |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
2 |
4 |
15 |
|
(SP-1)←IY[15:8] |
11 |
100 |
101 |
E5 |
||||||||||
|
SP←SP-2 |
||||||||||||||
|
POP qq |
qq[15:8]←(SP+1) |
– |
– |
– |
– |
– |
– |
11 |
qq0 |
001 |
1 |
3 |
10 |
|
|
qq[7:0]←(SP) |
||||||||||||||
|
SP←SP+2 |
||||||||||||||
|
POP IX |
IX[15:8]←(SP+1) |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
2 |
4 |
14 |
|
IX[7:0]←(SP) |
11 |
100 |
001 |
E1 |
||||||||||
|
SP←SP+2 |
||||||||||||||
|
POP IY |
IY[15:8]←(SP+1) |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
2 |
4 |
14 |
|
IY[7:0]←(SP) |
11 |
100 |
001 |
E1 |
||||||||||
|
SP←SP+2 |
||||||||||||||
|
Операции обмена |
||||||||||||||
|
EX DE,HL |
DE↔HL |
– |
– |
– |
– |
– |
– |
11 |
101 |
011 |
EB |
1 |
1 |
4 |
|
EX AF,AF' |
AF↔AF' |
* |
* |
* |
* |
* |
* |
00 |
001 |
000 |
08 |
1 |
1 |
4 |
|
EXX |
BC↔BC' |
– |
– |
– |
– |
– |
– |
11 |
011 |
001 |
D9 |
1 |
1 |
4 |
|
DE↔DE' |
||||||||||||||
|
HL↔HL' |
||||||||||||||
|
EX (SP),HL |
H↔(SP+1) |
– |
– |
– |
– |
– |
– |
11 |
100 |
011 |
E3 |
1 |
5 |
19 |
|
L↔(SP) |
||||||||||||||
|
EX (SP),IX |
IX[15:8]↔(SP+1) |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
2 |
6 |
23 |
|
IX[7:0]↔(SP) |
11 |
100 |
011 |
E3 |
||||||||||
|
EX (SP),IY |
IY[15:8]↔(SP+1) |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
2 |
6 |
23 |
|
IY[7:0]↔(SP) |
11 |
100 |
011 |
E3 |
||||||||||
|
Операции поиска и групповой передачи |
||||||||||||||
|
LDI |
(DE)←(HL) |
– |
– |
0 |
*[1] |
0 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
DE←DE+1 |
10 |
100 |
000 |
A0 |
||||||||||
|
HL←HL+1 |
||||||||||||||
|
BC←BC-1 |
||||||||||||||
|
LDIR |
(DE)←(HL) |
– |
– |
0 |
0 |
0 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21[2] |
|
DE←DE+1 |
10 |
110 |
000 |
B0 |
2 |
4 |
16 |
|||||||
|
HL←HL+1 |
||||||||||||||
|
BC←BC-1 |
||||||||||||||
|
Повтор, пока BC≠0 |
||||||||||||||
|
LDD |
(DE)←(HL) |
– |
– |
0 |
* |
0 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
DE←DE-1 |
10 |
101 |
000 |
A8 |
||||||||||
|
HL←HL-1 |
||||||||||||||
|
BC←BC-1 |
||||||||||||||
|
LDDR |
(DE)←(HL) |
– |
– |
0 |
0 |
0 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21 |
|
DE←DE-1 |
10 |
111 |
000 |
B8 |
2 |
4 |
16 |
|||||||
|
HL←HL-1 |
||||||||||||||
|
BC←BC-1 |
||||||||||||||
|
Повтор, пока BC≠0 |
||||||||||||||
|
CPI |
Сравнение A с (HL)[3] |
* |
* |
* |
* |
1 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
HL←HL+1 |
10 |
100 |
001 |
A1 |
||||||||||
|
BC←BC-1 |
||||||||||||||
|
CPIR |
Сравнение A с (HL) |
* |
* |
* |
* |
1 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21 |
|
HL←HL+1 |
10 |
110 |
001 |
B1 |
2 |
4 |
16 |
|||||||
|
BC←BC-1 |
||||||||||||||
|
Повтор, пока A≠(HL) и BC≠0 |
||||||||||||||
|
CPD |
Сравнение A с (HL) |
* |
* |
* |
* |
1 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
HL←HL-1 |
10 |
101 |
001 |
A9 |
||||||||||
|
BC←BC-1 |
||||||||||||||
|
CPDR |
Сравнение A с (HL) |
* |
* |
* |
* |
1 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21 |
|
HL←HL-1 |
10 |
111 |
001 |
B9 |
2 |
4 |
16 |
|||||||
|
BC←BC-1 |
||||||||||||||
|
Повтор, пока A≠(HL) и BC≠0 |
||||||||||||||
|
Однобайтовые арифметико-логические операции |
||||||||||||||
|
ADD A,r |
A←A+r |
* |
* |
* |
* |
0 |
* |
10 |
000 |
r |
1 |
1 |
4 |
|
|
ADD A,n |
A←A+n |
* |
* |
* |
* |
0 |
* |
11 |
000 |
110 |
C6 |
2 |
2 |
7 |
|
n |
||||||||||||||
|
ADD A,(HL) |
A←A+(HL) |
* |
* |
* |
* |
0 |
* |
10 |
000 |
110 |
86 |
1 |
2 |
7 |
|
ADD A,(IX+d) |
A←A+(IX+d) |
* |
* |
* |
* |
0 |
* |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
000 |
110 |
86 |
|||||||||||
|
d |
||||||||||||||
|
ADD A,(IY+d) |
A←A+(IX+d) |
* |
* |
* |
* |
0 |
* |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
000 |
110 |
86 |
|||||||||||
|
d |
||||||||||||||
|
ADC A,r |
A←A+r+C |
* |
* |
* |
* |
0 |
* |
10 |
001 |
r |
1 |
1 |
4 |
|
|
ADC A,n |
A←A+n+C |
* |
* |
* |
* |
0 |
* |
11 |
001 |
110 |
CE |
2 |
2 |
7 |
|
n |
||||||||||||||
|
ADC A,(HL) |
A←A+(HL)+C |
* |
* |
* |
* |
0 |
* |
10 |
001 |
110 |
8E |
1 |
2 |
7 |
|
ADC A,(IX+d) |
A←A+(IX+d)+C |
* |
* |
* |
* |
0 |
* |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
001 |
110 |
8E |
|||||||||||
|
d |
||||||||||||||
|
ADC A,(IY+d) |
A←A+(IX+d)+C |
* |
* |
* |
* |
0 |
* |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
001 |
110 |
8E |
|||||||||||
|
d |
||||||||||||||
|
SUB r |
A←A-r |
* |
* |
* |
* |
1 |
* |
10 |
010 |
r |
1 |
1 |
4 |
|
|
SUB n |
A←A-n |
* |
* |
* |
* |
1 |
* |
11 |
010 |
110 |
D6 |
2 |
2 |
7 |
|
n |
||||||||||||||
|
SUB (HL) |
A←A-(HL) |
* |
* |
* |
* |
1 |
* |
10 |
010 |
110 |
96 |
1 |
2 |
7 |
|
SUB (IX+d) |
A←A-(IX+d) |
* |
* |
* |
* |
1 |
* |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
010 |
110 |
96 |
|||||||||||
|
d |
||||||||||||||
|
SUB (IY+d) |
A←A-(IX+d) |
* |
* |
* |
* |
1 |
* |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
010 |
110 |
96 |
|||||||||||
|
d |
||||||||||||||
|
SBC A,r |
A←A-r-C |
* |
* |
* |
* |
1 |
* |
10 |
011 |
r |
1 |
1 |
4 |
|
|
SBC A,n |
A←A-n-C |
* |
* |
* |
* |
1 |
* |
11 |
011 |
110 |
DE |
2 |
2 |
7 |
|
n |
||||||||||||||
|
SBC A,(HL) |
A←A-(HL)-C |
* |
* |
* |
* |
1 |
* |
10 |
011 |
110 |
9E |
1 |
2 |
7 |
|
SBC A,(IX+d) |
A←A-(IX+d)-C |
* |
* |
* |
* |
1 |
* |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
011 |
110 |
9E |
|||||||||||
|
d |
||||||||||||||
|
SBC A,(IY+d) |
A←A-(IX+d)-C |
* |
* |
* |
* |
1 |
* |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
011 |
110 |
9E |
|||||||||||
|
d |
||||||||||||||
|
AND r |
A←A&r |
* |
* |
1 |
* |
0 |
0 |
10 |
100 |
r |
1 |
1 |
4 |
|
|
AND n |
A←A&n |
* |
* |
1 |
* |
0 |
0 |
11 |
100 |
110 |
E6 |
2 |
2 |
7 |
|
n |
||||||||||||||
|
AND (HL) |
A←A&(HL) |
* |
* |
1 |
* |
0 |
0 |
10 |
100 |
110 |
A6 |
1 |
2 |
7 |
|
AND (IX+d) |
A←A&(IX+d) |
* |
* |
1 |
* |
0 |
0 |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
100 |
110 |
A6 |
|||||||||||
|
d |
||||||||||||||
|
AND (IY+d) |
A←A&(IX+d) |
* |
* |
1 |
* |
0 |
0 |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
100 |
110 |
A6 |
|||||||||||
|
d |
||||||||||||||
|
OR r |
A←A|r |
* |
* |
1 |
* |
0 |
0 |
10 |
110 |
r |
1 |
1 |
4 |
|
|
OR n |
A←A|n |
* |
* |
1 |
* |
0 |
0 |
11 |
110 |
110 |
F6 |
2 |
2 |
7 |
|
n |
||||||||||||||
|
OR (HL) |
A←A|(HL) |
* |
* |
1 |
* |
0 |
0 |
10 |
110 |
110 |
B6 |
1 |
2 |
7 |
|
OR (IX+d) |
A←A|(IX+d) |
* |
* |
1 |
* |
0 |
0 |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
110 |
110 |
B6 |
|||||||||||
|
d |
||||||||||||||
|
OR (IY+d) |
A←A|(IX+d) |
* |
* |
1 |
* |
0 |
0 |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
110 |
110 |
B6 |
|||||||||||
|
d |
||||||||||||||
|
XOR r |
A←AÅr |
* |
* |
1 |
* |
0 |
0 |
10 |
101 |
r |
1 |
1 |
4 |
|
|
XOR n |
A←AÅn |
* |
* |
1 |
* |
0 |
0 |
11 |
101 |
110 |
EE |
2 |
2 |
7 |
|
n |
||||||||||||||
|
XOR (HL) |
A←AÅ (HL) |
* |
* |
1 |
* |
0 |
0 |
10 |
101 |
110 |
AE |
1 |
2 |
7 |
|
XOR (IX+d) |
A←AÅ (IX+d) |
* |
* |
1 |
* |
0 |
0 |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
101 |
110 |
AE |
|||||||||||
|
d |
||||||||||||||
|
XOR (IY+d) |
A←AÅ (IX+d) |
* |
* |
1 |
* |
0 |
0 |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
101 |
110 |
AE |
|||||||||||
|
d |
||||||||||||||
|
CP r |
Сравнение A и r |
* |
* |
* |
* |
1 |
* |
10 |
111 |
r |
1 |
1 |
4 |
|
|
CP n |
Сравнение A и n |
* |
* |
* |
* |
1 |
* |
11 |
111 |
110 |
FE |
2 |
2 |
7 |
|
n |
||||||||||||||
|
CP (HL) |
Сравнение A и (HL) |
* |
* |
* |
* |
1 |
* |
10 |
111 |
110 |
BE |
1 |
2 |
7 |
|
CP (IX+d) |
Сравнение A и (IX+d) |
* |
* |
* |
* |
1 |
* |
11 |
011 |
101 |
DD |
3 |
5 |
19 |
|
10 |
111 |
110 |
BE |
|||||||||||
|
d |
||||||||||||||
|
CP (IY+d) |
Сравнение A и (IX+d) |
* |
* |
* |
* |
1 |
* |
11 |
111 |
101 |
FD |
3 |
5 |
19 |
|
10 |
111 |
110 |
BE |
|||||||||||
|
d |
||||||||||||||
|
INC r |
r←r+1 |
* |
* |
* |
* |
0 |
– |
00 |
r |
100 |
1 |
1 |
4 |
|
|
INC (HL) |
(HL)←(HL)+1 |
* |
* |
* |
* |
0 |
– |
00 |
110 |
100 |
34 |
1 |
3 |
11 |
|
INC (IX+d) |
(IX+d)←(IX+d)+1 |
* |
* |
* |
* |
0 |
– |
11 |
011 |
101 |
DD |
3 |
6 |
23 |
|
00 |
110 |
100 |
34 |
|||||||||||
|
d |
||||||||||||||
|
INC (IY+d) |
(IY+d)←(IY+d)+1 |
* |
* |
* |
* |
0 |
– |
11 |
111 |
101 |
FD |
3 |
6 |
23 |
|
00 |
110 |
100 |
34 |
|||||||||||
|
d |
||||||||||||||
|
DEC r |
r←r-1 |
* |
* |
* |
* |
0 |
– |
00 |
r |
101 |
1 |
1 |
4 |
|
|
DEC (HL) |
(HL)←(HL)-1 |
* |
* |
* |
* |
0 |
– |
00 |
110 |
101 |
35 |
1 |
3 |
11 |
|
DEC (IX+d) |
(IX+d)←(IX+d)-1 |
* |
* |
* |
* |
0 |
– |
11 |
011 |
101 |
DD |
3 |
6 |
23 |
|
00 |
110 |
101 |
35 |
|||||||||||
|
d |
||||||||||||||
|
DEC (IY+d) |
(IY+d)←(IY+d)-1 |
* |
* |
* |
* |
0 |
– |
11 |
111 |
101 |
FD |
3 |
6 |
23 |
|
00 |
110 |
101 |
35 |
|||||||||||
|
d |
||||||||||||||
|
DAA |
Десятичная коррекция |
* |
* |
* |
* |
– |
* |
00 |
100 |
111 |
27 |
1 |
1 |
4 |
|
CPL |
A← not A |
– |
– |
1 |
– |
1 |
– |
00 |
101 |
111 |
2F |
1 |
1 |
4 |
|
NEG |
A← -A |
* |
* |
* |
* |
1 |
* |
11 |
101 |
101 |
ED |
2 |
2 |
8 |
|
01 |
000 |
100 |
44 |
|||||||||||
|
Двухбайтовые арифметические операции |
||||||||||||||
|
ADD HL,dd |
HL←HL+dd |
– |
– |
? |
– |
0 |
* |
00 |
dd1 |
001 |
1 |
3 |
11 |
|
|
ADC HL,dd |
HL←HL+dd+C |
* |
* |
? |
* |
0 |
* |
11 |
101 |
101 |
ED |
2 |
4 |
15 |
|
01 |
dd1 |
010 |
||||||||||||
|
SBC HL,dd |
HL←HL-dd-C |
* |
* |
? |
* |
1 |
* |
11 |
101 |
101 |
ED |
2 |
4 |
15 |
|
01 |
dd0 |
010 |
||||||||||||
|
ADD IX,pp |
IX←IX+pp |
– |
– |
? |
– |
0 |
* |
11 |
011 |
101 |
DD |
2 |
4 |
15 |
|
01 |
pp1 |
001 |
||||||||||||
|
ADD IY,ss |
IY←IY+ss |
– |
– |
? |
– |
0 |
* |
11 |
111 |
101 |
FD |
2 |
4 |
15 |
|
00 |
ss1 |
001 |
||||||||||||
|
INC dd |
dd←dd+1 |
– |
– |
– |
– |
– |
– |
00 |
ss0 |
011 |
1 |
1 |
6 |
|
|
INC IX |
IX←IX+1 |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
2 |
2 |
10 |
|
00 |
100 |
011 |
23 |
|||||||||||
|
INX IY |
IY←IY+1 |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
2 |
2 |
10 |
|
00 |
100 |
011 |
23 |
|||||||||||
|
DEC dd |
dd←dd-1 |
– |
– |
– |
– |
– |
– |
00 |
ss1 |
011 |
1 |
1 |
6 |
|
|
DEC IX |
IX←IX-1 |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
2 |
2 |
10 |
|
00 |
101 |
011 |
2B |
|||||||||||
|
DEX IY |
IY←IY-1 |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
2 |
2 |
10 |
|
00 |
101 |
011 |
2B |
|||||||||||
|
Операции сдвигов |
||||||||||||||
|
RLCA |
циклический сдвиг A влево |
– |
– |
0 |
– |
0 |
* |
00 |
000 |
111 |
07 |
1 |
1 |
4 |
|
RLA |
циклический сдвиг A влево через перенос |
– |
– |
0 |
– |
0 |
* |
00 |
010 |
111 |
17 |
1 |
1 |
4 |
|
RRCA |
циклический сдвиг A вправо |
– |
– |
0 |
– |
0 |
* |
00 |
001 |
111 |
0F |
1 |
1 |
4 |
|
RRA |
циклический сдвиг A вправо через перенос |
– |
– |
0 |
– |
0 |
* |
00 |
011 |
111 |
1F |
1 |
1 |
4 |
|
RLC r |
циклический сдвиг r влево |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
00 |
000 |
r |
||||||||||||
|
RLC (HL) |
циклический сдвиг (HL) влево |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
4 |
15 |
|
00 |
000 |
110 |
06 |
|||||||||||
|
RLC (IX+d) |
циклический сдвиг (IX+d) влево |
* |
* |
0 |
* |
0 |
* |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
000 |
110 |
06 |
|||||||||||
|
RLC (IY+d) |
циклический сдвиг (IY+d) влево |
* |
* |
0 |
* |
0 |
* |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
000 |
110 |
06 |
|||||||||||
|
RL r |
циклический сдвиг r влево через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
00 |
010 |
r |
||||||||||||
|
RL (HL) |
циклический сдвиг (HL) влево через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
4 |
15 |
|
00 |
010 |
110 |
16 |
|||||||||||
|
RL (IX+d) |
циклический сдвиг (IX+d) влево через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
010 |
110 |
16 |
|||||||||||
|
RL (IY+d) |
циклический сдвиг (IY+d) влево через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
010 |
110 |
16 |
|||||||||||
|
RRC r |
циклический сдвиг r вправо |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
00 |
001 |
r |
||||||||||||
|
RRC (HL) |
циклический сдвиг (HL) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
4 |
15 |
|
00 |
001 |
110 |
0E |
|||||||||||
|
RRC (IX+d) |
циклический сдвиг (IX+d) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
001 |
110 |
0E |
|||||||||||
|
RRC (IY+d) |
циклический сдвиг (IY+d) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
001 |
110 |
0E |
|||||||||||
|
RR r |
циклический сдвиг r вправо через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
00 |
011 |
r |
||||||||||||
|
RR (HL) |
циклический сдвиг (HL) вправо через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
4 |
15 |
|
00 |
011 |
110 |
1E |
|||||||||||
|
RR (IX+d) |
циклический сдвиг (IX+d) вправо через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
011 |
110 |
1E |
|||||||||||
|
RR (IY+d) |
циклический сдвиг (IY+d) вправо через перенос |
* |
* |
0 |
* |
0 |
* |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
011 |
110 |
1E |
|||||||||||
|
SLA r |
арифметический сдвиг r влево |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
00 |
100 |
r |
||||||||||||
|
SLA (HL) |
арифметический сдвиг (HL) влево |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
2B |
2 |
4 |
15 |
|
00 |
100 |
110 |
26 |
|||||||||||
|
SLA (IX+d) |
арифметический сдвиг (IX+d) влево |
* |
* |
0 |
* |
0 |
* |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
100 |
110 |
26 |
|||||||||||
|
SLA (IY+d) |
арифметический сдвиг (IY+d) влево |
* |
* |
0 |
* |
0 |
* |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
100 |
110 |
26 |
|||||||||||
|
SRA r |
арифметический сдвиг r вправо |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
00 |
101 |
r |
||||||||||||
|
SRA (HL) |
арифметический сдвиг (HL) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
2B |
2 |
4 |
15 |
|
00 |
101 |
110 |
2E |
|||||||||||
|
SRA (IX+d) |
арифметический сдвиг (IX+d) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
101 |
110 |
2E |
|||||||||||
|
SRA (IY+d) |
арифметический сдвиг (IY+d) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
101 |
110 |
2E |
|||||||||||
|
SRL r |
логический сдвиг r вправо |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
00 |
111 |
r |
||||||||||||
|
SRL (HL) |
логический сдвиг (HL) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
001 |
011 |
2B |
2 |
4 |
15 |
|
00 |
111 |
110 |
3E |
|||||||||||
|
SRL (IX+d) |
логический сдвиг (IX+d) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
111 |
110 |
3E |
|||||||||||
|
SRL (IY+d) |
логический сдвиг (IY+d) вправо |
* |
* |
0 |
* |
0 |
* |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
00 |
111 |
110 |
3E |
|||||||||||
|
RLD |
десятичный сдвиг влево |
* |
* |
0 |
* |
0 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
18 |
|
01 |
101 |
111 |
6F |
|||||||||||
|
RRD |
десятичный сдвиг вправо |
* |
* |
0 |
* |
0 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
18 |
|
01 |
100 |
111 |
67 |
|||||||||||
|
Битовые операции |
||||||||||||||
|
BIT b,r |
Z← not rb |
? |
* |
1 |
? |
0 |
– |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
01 |
b |
r |
||||||||||||
|
BIT b,(HL) |
Z← not (HL)b |
? |
* |
1 |
? |
0 |
– |
11 |
001 |
011 |
CB |
2 |
3 |
12 |
|
01 |
b |
110 |
||||||||||||
|
BIT b, (IX+d) |
Z← not (IX+d)b |
? |
* |
1 |
? |
0 |
– |
11 |
011 |
101 |
DD |
4 |
5 |
20 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
01 |
b |
110 |
||||||||||||
|
BIT b, (IY+d) |
Z← not (IY+d)b |
? |
* |
1 |
? |
0 |
– |
11 |
111 |
101 |
FD |
4 |
5 |
20 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
01 |
b |
110 |
||||||||||||
|
SET b,r |
rb ← 1 |
– |
– |
– |
– |
– |
– |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
11 |
b |
r |
||||||||||||
|
SET b,(HL) |
(HL)b ← 1 |
– |
– |
– |
– |
– |
– |
11 |
001 |
011 |
CB |
2 |
4 |
15 |
|
11 |
b |
110 |
||||||||||||
|
SET b, (IX+d) |
(IX+d)b ← 1 |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
11 |
b |
110 |
||||||||||||
|
SET b, (IY+d) |
(IY+d)b ← 1 |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
11 |
b |
110 |
||||||||||||
|
RES b,r |
rb ← 1 |
– |
– |
– |
– |
– |
– |
11 |
001 |
011 |
CB |
2 |
2 |
8 |
|
10 |
b |
r |
||||||||||||
|
RES b,(HL) |
(HL)b ← 1 |
– |
– |
– |
– |
– |
– |
11 |
001 |
011 |
CB |
2 |
4 |
15 |
|
10 |
b |
110 |
||||||||||||
|
RES b, (IX+d) |
(IX+d)b ← 1 |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
10 |
b |
110 |
||||||||||||
|
RES b, (IY+d) |
(IY+d)b ← 1 |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
4 |
6 |
23 |
|
11 |
001 |
011 |
CB |
|||||||||||
|
d |
||||||||||||||
|
10 |
b |
110 |
||||||||||||
|
Операции переходов |
||||||||||||||
|
JP nn |
PC←nn |
– |
– |
– |
– |
– |
– |
11 |
000 |
011 |
C3 |
3 |
3 |
10 |
|
n |
||||||||||||||
|
n |
||||||||||||||
|
JP cc,nn |
Если выполнено условие cc, то PC←nn |
– |
– |
– |
– |
– |
– |
11 |
сс |
010 |
3 |
3 |
10 |
|
|
n |
||||||||||||||
|
n |
||||||||||||||
|
JR e |
PC←PC+e |
– |
– |
– |
– |
– |
– |
00 |
011 |
000 |
18 |
2 |
3 |
12 |
|
e-2 |
||||||||||||||
|
JR C,e |
Если C=1, то PC←PC+e |
– |
– |
– |
– |
– |
– |
00 |
111 |
000 |
38 |
2 |
2 |
7[4] |
|
e-2 |
2 |
3 |
12 |
|||||||||||
|
JR NC,e |
Если C=0, то PC←PC+e |
– |
– |
– |
– |
– |
– |
00 |
110 |
000 |
30 |
2 |
2 |
7 |
|
e-2 |
2 |
3 |
12 |
|||||||||||
|
JR Z,e |
Если Z=1, то PC←PC+e |
– |
– |
– |
– |
– |
– |
00 |
101 |
000 |
28 |
2 |
2 |
7 |
|
e-2 |
2 |
3 |
12 |
|||||||||||
|
JR NZ,e |
Если Z=0, то PC←PC+e |
– |
– |
– |
– |
– |
– |
00 |
100 |
000 |
20 |
2 |
2 |
7 |
|
e-2 |
2 |
3 |
12 |
|||||||||||
|
JP (HL) |
PC←HL |
– |
– |
– |
– |
– |
– |
11 |
101 |
001 |
E9 |
1 |
1 |
4 |
|
JP (IX) |
PC←IX |
– |
– |
– |
– |
– |
– |
11 |
011 |
101 |
DD |
2 |
2 |
8 |
|
11 |
101 |
001 |
E9 |
|||||||||||
|
JP (IY) |
PC←IY |
– |
– |
– |
– |
– |
– |
11 |
111 |
101 |
FD |
2 |
2 |
8 |
|
11 |
101 |
001 |
E9 |
|||||||||||
|
DJNZ e |
B←B-1; если B≠0, то PC←PC+e |
– |
– |
– |
– |
– |
– |
00 |
010 |
000 |
10 |
2 |
2 |
8[5] |
|
e-2 |
2 |
3 |
13 |
|||||||||||
|
CALL nn |
(SP-1)←PC[15:8] |
– |
– |
– |
– |
– |
– |
11 |
001 |
101 |
CD |
3 |
5 |
17 |
|
(SP-2)←PC[7:0] |
n |
|||||||||||||
|
SP←SP-2 |
n |
|||||||||||||
|
PC←nn |
||||||||||||||
|
CALL cc,nn |
Если условие cc выполнено, то: |
– |
– |
– |
– |
– |
– |
11 |
сс |
100 |
CD |
3 |
3 |
10[6] |
|
n |
3 |
5 |
17 |
|||||||||||
|
(SP-1)←PC[15:8] |
n |
|||||||||||||
|
(SP-2)←PC[7:0] |
||||||||||||||
|
SP←SP-2 |
||||||||||||||
|
PC←nn |
||||||||||||||
|
RET |
PC[7:0]←(SP) |
– |
– |
– |
– |
– |
– |
11 |
001 |
001 |
C9 |
1 |
3 |
10 |
|
PC[15:8]←(SP+1) |
||||||||||||||
|
SP←SP+2 |
||||||||||||||
|
RET cc |
Если условие cc выполнено, то: |
– |
– |
– |
– |
– |
– |
11 |
сс |
000 |
1 |
1 |
5 |
|
|
1 |
3 |
11 |
||||||||||||
|
PC[7:0]←(SP) |
||||||||||||||
|
PC[15:8]←(SP+1) |
||||||||||||||
|
SP←SP+2 |
||||||||||||||
|
RETI |
Возврат из прерывания |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
4 |
14 |
|
01 |
001 |
101 |
4D |
|||||||||||
|
RETN |
Возврат из немаскируемого прерывания |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
4 |
14 |
|
01 |
000 |
101 |
45 |
|||||||||||
|
IFF1←IFF2 |
||||||||||||||
|
RST x |
(SP-1)←PC[15:8] |
– |
– |
– |
– |
– |
– |
11 |
x |
111 |
1 |
3 |
11 |
|
|
(SP-2)←PC[7:0] |
||||||||||||||
|
SP←SP-2 |
||||||||||||||
|
PC←адрес подпрограммы |
||||||||||||||
|
Операции ввода-вывода[7] |
||||||||||||||
|
IN A,(p) |
A←порт (A; p) |
– |
– |
– |
– |
– |
– |
11 |
011 |
011 |
DB |
2 |
3 |
11 |
|
p |
||||||||||||||
|
IN r,(C) |
r←порт (BC) |
* |
* |
0 |
P |
0 |
– |
11 |
101 |
101 |
ED |
2 |
3 |
12 |
|
01 |
r |
000 |
||||||||||||
|
INI |
(HL)←порт (BC) |
? |
* |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
B←B–1 |
10 |
100 |
010 |
A2 |
||||||||||
|
HL←HL+1 |
||||||||||||||
|
INIR |
(HL)←порт (BC) |
? |
1 |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21 |
|
B←B–1 |
10 |
110 |
010 |
B2 |
2 |
4 |
16 |
|||||||
|
HL←HL+1 |
||||||||||||||
|
Повтор, пока B≠0 |
||||||||||||||
|
IND |
(HL)←порт (BC) |
? |
* |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
B←B–1 |
10 |
101 |
010 |
AA |
||||||||||
|
HL←HL–1 |
||||||||||||||
|
INDR |
(HL)←порт (BC) |
? |
1 |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21 |
|
B←B–1 |
10 |
111 |
010 |
BA |
2 |
4 |
16 |
|||||||
|
HL←HL–1 |
||||||||||||||
|
Повтор, пока B≠0 |
||||||||||||||
|
OUT (p),A |
порт (A; p)←A |
– |
– |
– |
– |
– |
– |
11 |
010 |
011 |
D3 |
2 |
3 |
11 |
|
p |
||||||||||||||
|
OUT (C),r |
порт (BC)←r |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
3 |
12 |
|
01 |
r |
001 |
||||||||||||
|
OUTI |
порт (BC)←(HL) |
? |
* |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
B←B–1 |
10 |
100 |
011 |
A3 |
||||||||||
|
HL←HL+1 |
||||||||||||||
|
OTIR |
порт (BC)←(HL) |
? |
1 |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21 |
|
B←B–1 |
10 |
110 |
011 |
B3 |
2 |
4 |
16 |
|||||||
|
HL←HL+1 |
||||||||||||||
|
Повтор, пока B≠0 |
||||||||||||||
|
OUTD |
порт (BC)←(HL) |
? |
* |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
4 |
16 |
|
B←B–1 |
10 |
101 |
011 |
AB |
||||||||||
|
HL←HL–1 |
||||||||||||||
|
OTDR |
порт (BC)←(HL) |
? |
1 |
? |
? |
1 |
– |
11 |
101 |
101 |
ED |
2 |
5 |
21 |
|
B←B–1 |
10 |
111 |
011 |
BB |
2 |
4 |
16 |
|||||||
|
HL←HL–1 |
||||||||||||||
|
Повтор, пока B≠0 |
||||||||||||||
|
Прочие операции |
||||||||||||||
|
CCF |
инверсия флага C |
– |
– |
– |
– |
– |
* |
00 |
111 |
111 |
3F |
1 |
1 |
4 |
|
SCF |
установка флага C |
– |
– |
– |
– |
– |
1 |
00 |
110 |
111 |
37 |
1 |
1 |
4 |
|
NOP |
нет операции |
– |
– |
– |
– |
– |
– |
00 |
000 |
000 |
00 |
1 |
1 |
4 |
|
HALT |
останов ЦП |
– |
– |
– |
– |
– |
– |
01 |
110 |
110 |
76 |
1 |
1 |
4 |
|
DI |
IFF←0 |
– |
– |
– |
– |
– |
– |
11 |
110 |
011 |
F3 |
1 |
1 |
4 |
|
EI |
IFF←1 |
– |
– |
– |
– |
– |
– |
11 |
111 |
011 |
FB |
1 |
1 |
4 |
|
IM 0 |
установка режима |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
2 |
8 |
|
прерываний 0 |
01 |
000 |
110 |
46 |
||||||||||
|
IM 1 |
установка режима |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
2 |
8 |
|
прерываний 1 |
01 |
010 |
110 |
56 |
||||||||||
|
IM 2 |
установка режима |
– |
– |
– |
– |
– |
– |
11 |
101 |
101 |
ED |
2 |
2 |
8 |
|
прерываний 2 |
01 |
011 |
110 |
5E |
||||||||||