|
Система команд - таблица групп команд.
|
Таблица 5.1.1. 8-битовые команды загрузки |
Команда |
T |
Код |
Пояснения |
C Z P S N H |
LD r1,r2 LD r,(HL) LD (HL),r LD r,n
LD (HL),n |
4 7 7 7
10 |
01 r1 r2 01 r 110 01 110 r 00 r 110
- n - 00 110 110
- n - |
r1 ^ r2 r ^ (HL) (HL) ^ r r ^ n
(HL) ^ n |
|
LD r,(IX+d) LD r,(IY+d) LD {IX+d),r LD (IY+d),r |
19 19 19 19 |
11 011 101 01 r 110 - d - 11 111 101 01 r 110 - d - 11 011 101 01 110 r - d - 11 111 101 01 110 r - d - |
r ^ (IX+d) r ^ (1Y+d) (IX+d) ^ r (IY+d) ^ r |
|
LD (IX+d),n LD (IY+d),n |
19 19 |
11 011 101 00 110 110 - d -
- n - 11 111 101 00 110 110
- d - - n - |
(IX+d) ^ n (IY+d) ^ n |
|
LD A,(BC) LD A,(DE) LD A,(nn) |
7 7 13 |
00 001 010 00 011 010 00 111 010
- n -
- n - |
A ^ (BC) A ^ (DE) A ^ (nn) |
|
LD (BC),A LD (DE),A LD (nn),A |
7 7 13 |
00 000 010 00 010 010 00 110 010
- n -
- n - |
(BC) ^ А (DE) ^ A (nn) ^ A |
|
LD A,I LD A,R LD I,A LD R,A |
9 9 9 |
11 101 101 01 010 111 11 101 101 01 011 111 11 101 101 01 000 111 11 101 101 01 001 111 |
A ^ I A ^ R I ^ A R ^ A |
? IF ? 0 0 ? IF ? 0 0 |
Таблица 5.1.2. 16-битовые команды загрузки |
Команда |
T |
Код |
Пояснения |
C Z P S N H |
LD dd,nn LD IX,nn
LD IY,nn
LD HL,(nn) |
10 14
14
16 |
00 dd0 001
- n -
- n - 11 011 101 00 100 001
- n -
- n - 11 111 101 00 100 001
- n -
- n - 00 101 010
- n -
- n - |
dd ^ nn IX ^ nn
IY ^ nn
H ^ (nn+1) L ^ (nn) |
|
Команда |
T |
Код |
Пояснения |
C |
Z |
P S N |
H |
LD dd,(nn) |
20 |
11 01 |
101 dd1 n |
101 011 |
ddH ^ (nn+1) ddL ^ (nn) |
|
|
|
|
LD IX,(nn) |
20 |
11
00 |
n 011 101 n |
101 010 |
IXH ^ (nn+1) IXl ^ (nn) |
|
|
|
|
LD IY,(nn) |
20 |
11
00 |
n 111 101 n n |
101 010 |
IYH ^ (nn+1) IYl ^ (nn) |
|
|
|
|
LD (nn),HL |
16 |
00 |
100 n |
010 |
(nn+1) ^ H (nn) ^ L |
|
|
|
|
LD (nn),dd |
20 |
11 01 |
n 101 dd0 n |
101 011 |
(nn+1) ^ ddH (nn) ^ ddL |
|
|
|
|
LD (nn),IX |
20 |
11
00 |
n 011 100 n |
101 010 |
(nn+1) ^ IXH (nn) ^ IXl |
|
|
|
|
LD (nn),IY |
20 |
11
00 |
n 111 100 n n |
101 010 |
(nn+1) ^ IYH (nn) ^ IYl |
|
|
|
|
LD SP,HL LD SP,IX
LD SP,IY
PUSH qq
PUSH IX
PUSH IY
POP qq
POP IX
POP IY |
6 10
10
11
15
15
10
14
14 |
11 11 11 11 11 11
11 11 11 11 11
11 11 11 11 |
111 011 111 111 111 qq0
011 100 111 100 qq0
011 100 111 100 |
001 001 001 001 001 101
101 101 101 101 001
101 001 101 001 |
SP ^ HL SP ^ IX
SP ^ IY
(SP-2) ^ qqL (SP-1) ^ qqH (SP-2) ^ IXL (SP-1) ^ IXH (SP-2) ^ IYL (SP-1) ^ IYH qqH ^ (SP+1) qqL ^ (SP) IXH ^ (SP+1) IXL ^ (SP) IYH ^ (SP+1) IYl ^ (SP) |
|
Таблица 5.1.З. Команды обработки блоков |
Команда |
T |
Код |
Пояснения |
C |
Z |
P S N |
H |
LDI LDIR
LDD |
16
21 (16)
16 |
11 10
11 10
11 10 |
101 100
101 110
101 101 |
101
000
101
000
101
000 |
(DE) ^ (HL) затем DE ^ DE+1 HL ^ HL+1 BC ^ BC-1 (DE) ^ (HL) затем DE ^ DE+1 HL ^ HL+1 BC ^ BC-1 и повтор до BC=0 (DE) ^ (HL) затем DE ^ DE-1 HL ^ HL-1 BC ^ BC-1 |
|
P= P=
P= P= |
? 0 =0, если BC-1=0 =1, если BC-1^0
0 0
? 0 =0, если BC-1=0 =1, если BC-1^0 |
0 0
0 |
Команда |
T |
Код |
Пояснения |
C |
Z |
P |
S |
N |
H |
LDDR |
21 |
11 |
101 |
101 |
(DE) ^ (HL) |
|
|
0 |
|
0 |
0 |
|
(16) |
10 |
111 |
000 |
затем DE ^ DE-1 |
|
|
|
|
|
|
|
|
|
|
|
HL ^ HL-1 |
|
|
|
|
|
|
|
|
|
|
|
BC ^ BC-1 |
|
|
|
|
|
|
|
|
|
|
|
и повтор до BC=0 |
|
|
|
|
|
|
CPI |
16 |
11 |
101 |
101 |
A-(HL)=? |
|
? |
? |
? |
1 |
? |
|
|
|
|
|
затем HL ^ HL+1 |
|
Z= |
1, если A=(HL) |
|
|
|
|
|
|
ВС^ВС-1 |
|
Z=0, если A^(HL) |
|
|
|
|
|
|
|
|
Р= |
0, если BC-1 |
=0 |
|
|
|
|
|
|
|
|
Р= |
=1, если BC-1^0 |
|
CPIR |
21 |
11 |
101 |
101 |
A-(HL)=? |
|
? |
? |
? |
1 |
? |
|
(16) |
10 |
110 |
001 |
затем HL ^ HL+1 |
|
Z= |
1, если A=(HL) |
|
|
|
|
|
|
ВС^ВС-1 |
|
Z=0, если A^(HL) |
|
|
|
|
|
|
и повтор по BC=0 |
|
Р= |
0, если BC-1 |
=0 |
|
|
|
|
|
|
или A=(HL) |
|
Р= |
=1, если BC-1^0 |
|
CPD |
16 |
11 |
101 |
101 |
A-(HL)=? |
|
? |
? |
? |
1 |
? |
|
|
10 |
101 |
001 |
затем HL ^ HL-1 |
|
Z= |
1, если A=(HL) |
|
|
|
|
|
|
ВС^ВС-1 |
|
Z=0, если A^(HL) |
|
|
|
|
|
|
|
|
Р= |
0, если BC-1 |
=0 |
|
|
|
|
|
|
|
|
Р= |
=1, если BC-1^0 |
|
CPDR |
21 |
11 |
101 |
101 |
A-(HL)=? |
|
? |
? |
? |
1 |
? |
|
(16) |
10 |
111 |
001 |
затем HL ^ HL-1 |
|
Z= |
1, если A=(HL) |
|
|
|
|
|
|
ВС^ВС-1 |
|
Z=0, если A^(HL) |
|
|
|
|
|
|
и повтор по BC=0 |
|
Р= |
0, если BC-1 |
=0 |
|
|
|
|
|
|
или A=(HL) |
|
Р= |
=1, если BC-1^0 |
|
Таблица 5.1.4. 8-битовые арифметические и логические команды |
Команда |
T |
Код |
Пояснения |
C |
Z |
P |
S |
N |
H |
ADD A,r |
4 |
10 |
000 |
r |
A ^ A+r |
? |
? |
V |
? |
0 |
? |
ADD A,n |
7 |
11 |
|
110 |
A ^ A+n |
? |
? |
V |
? |
0 |
? |
ADD A,(HL) |
7 |
10 |
n
000 |
110 |
A ^ A+(HL) |
? |
? |
V |
? |
0 |
? |
ADD A,(IX+d) |
19 |
11 |
011 |
101 |
A ^ A+(IX+d) |
? |
? |
V |
? |
0 |
? |
|
|
10 |
000 |
110 |
|
|
|
|
|
|
|
|
|
- |
d |
- |
|
|
|
|
|
|
|
ADD A,(IY+d) |
19 |
11 |
111 |
101 |
A ^ A+(IY+d) |
? |
? |
V |
? |
0 |
? |
|
|
10 |
000 |
110 |
|
|
|
|
|
|
|
|
|
- |
d |
- |
|
|
|
|
|
|
|
ADC A,s |
|
|
001 |
|
A ^ A+s+C |
? |
? |
V |
? |
0 |
? |
SUB s |
|
|
010 |
|
A ^ A-s |
? |
? |
V |
? |
1 |
? |
SBC A,s |
|
|
011 |
|
A ^ A-s-C |
? |
? |
V |
? |
1 |
? |
AND s |
|
|
100 |
|
A ^ A AND s |
0 |
? |
P |
? |
0 |
1 |
OR s |
|
|
110 |
|
A ^ A OR a |
0 |
? |
P |
? |
0 |
0 |
XOR s |
|
|
101 |
|
A ^ A XOR a |
0 |
? |
P |
? |
0 |
0 |
CP s |
|
|
111 |
|
A-s=? |
? |
? |
V |
? |
1 |
? |
|
|
|
|
|
Код подставляется |
|
|
|
|
|
|
|
|
|
|
|
вместо 000 |
|
|
|
|
|
|
|
|
|
|
|
в командах |
|
|
|
|
|
|
INC r |
4 |
00 |
r |
100 |
г ^ r+1 |
|
? |
V |
? |
0 |
? |
INC (HL) |
11 |
00 |
110 |
100 |
(HL) ^ (HL) + 1 |
|
? |
V |
? |
0 |
? |
INC (IX+d) |
23 |
11 |
011 |
101 |
(IX+d) ^ (IX+d)+1 |
|
? |
V |
? |
0 |
? |
|
|
00 |
110 |
100 |
|
|
|
|
|
|
|
|
|
- |
d |
- |
|
|
|
|
|
|
|
INC (IY+d) |
23 |
11 |
111 |
101 |
(IY+d) ^ (IY+d)+1 |
|
? |
V |
? |
0 |
? |
|
|
00 |
110 |
100 |
|
|
|
|
|
|
|
|
|
- |
d |
- |
|
|
|
|
|
|
|
DEC t |
|
|
101 |
|
t ^ t-1 |
|
? |
V |
? |
1 |
? |
|
|
|
|
|
Код подставляется |
|
|
|
|
|
|
|
|
|
|
|
вместо 100 |
|
|
|
|
|
|
|
|
|
|
|
в командах INC |
|
|
|
|
|
|
Команда |
T |
Код |
Пояснения |
C |
Z |
P |
S |
N |
H |
DAA |
4 |
00 |
100 |
111 |
Двоично-десятичная |
? |
? |
P |
? |
|
? |
|
|
|
|
|
коррекция A |
|
|
|
|
|
|
CPL |
4 |
00 |
101 |
111 |
A ^ инверсия A |
|
|
|
|
1 |
1 |
NEG |
8 |
11 |
101 |
101 |
А ^ -А |
? |
? |
V |
? |
1 |
? |
|
|
01 |
000 |
100 |
|
|
|
|
|
|
|
CCF |
4 |
00 |
111 |
111 |
C ^ инверсия C |
? |
|
|
|
0 |
X |
SCF |
4 |
00 |
110 |
111 |
C ^ 1 |
1 |
|
|
|
0 |
0 |
Таблица 5.1.5. 16 битовые арифметические команды |
Команда |
T |
Код |
Пояснения |
C |
Z |
P |
S |
N |
H |
ADD HL,dd |
11 |
00 |
dd1 |
001 |
HL ^ HL+dd |
? |
|
|
|
0 |
X |
ADC HL,dd |
15 |
11 |
101 |
101 |
HL ^ HL+dd+C |
? |
? |
V |
? |
0 |
X |
|
|
01 |
dd1 |
010 |
|
|
|
|
|
|
|
SBC HL,dd |
15 |
11 |
101 |
101 |
HL ^ HL-dd-C |
? |
? |
V |
? |
1 |
X |
|
|
01 |
dd0 |
010 |
|
|
|
|
|
|
|
ADD IX,pp |
15 |
11 |
011 |
101 |
IX ^ IX+pp |
? |
|
|
|
0 |
X |
|
|
00 |
pp1 |
001 |
|
|
|
|
|
|
|
ADD IY,rr |
15 |
11 |
111 |
101 |
IY ^ IY+rr |
? |
|
|
|
0 |
X |
|
|
00 |
rr1 |
001 |
|
|
|
|
|
|
|
INC dd |
6 |
00 |
dd0 |
011 |
dd ^ dd+1 |
|
|
|
|
|
|
INC IX |
10 |
11 |
011 |
101 |
IX ^ IX+1 |
|
|
|
|
|
|
|
|
00 |
100 |
011 |
|
|
|
|
|
|
|
INC IY |
10 |
11 |
111 |
101 |
IY ^ IY+1 |
|
|
|
|
|
|
|
|
00 |
100 |
011 |
|
|
|
|
|
|
|
DEC dd |
6 |
00 |
dd1 |
011 |
dd ^ dd-1 |
|
|
|
|
|
|
DEC IX |
10 |
11 |
011 |
101 |
IX ^ IX-1 |
|
|
|
|
|
|
|
|
00 |
101 |
011 |
|
|
|
|
|
|
|
DEC IY |
10 |
11 |
111 |
101 |
IY ^ IY-1 |
|
|
|
|
|
|
Таблица 5.1.6. Команд] Команда
JP nn
JP cc,nn
JR e JR C,e
JR NC,e
JR Z,e
JR NZ,e
JP (HL) JP (IX)
JP (IY) |
ы перехс T 10
10
12 12 (7) 12 (7) 12 (7) 12 (7)
4 8
8 |
00 дов
11
11
00 00
00
00
00
11 11 11 11 11 |
101
Код
000 n n cc n n 011 e-2 111
e-2
110
e-2
101
e-2
100
e-2
101 011 101 111 101 |
011
011
010
000 000
000
000
000
001 101 001 101 001 |
Пояснения
PC ^ nn
PC ^ nn, если условие выполняется PC ^ PC+3, если нет PC ^ PC+e
PC ^ PC+e, еcли C=1
PC ^ PC+2, если C=0
PC ^ PC+e, если C=0
PC ^ PC+2, если C=1
PC ^ PC+e, если Z=1
PC ^ PC+2, если Z=0
PC ^ PC+e, если Z=0
PC ^ PC+2, если Z=1
PC ^ HL PC ^ IX PC ^ IY |
C |
Z |
P |
S |
N |
H |
Команда |
T |
Код |
Пояснения |
C Z P S N H |
DJNZ e |
13 (8) |
00 010 000 - e-2 - |
B ^ B-1,
при B=0 PC ^ PC+2 при B^0 PC ^ PC+e |
|
Таблица 5.1.7 Команды для работы с битами
Команда |
T |
Код |
Пояснения |
C Z |
P |
S |
N |
H |
BIT b,r |
8 |
11 001 |
011 |
Z ^ инверсия rb |
? |
X |
X |
0 |
1 |
|
|
01 b |
r |
|
|
|
|
|
|
BIT b,(HL) |
12 |
11 001 |
011 |
Z ^ инверсия (HL)b |
? |
X |
X |
0 |
1 |
|
|
01 b |
110 |
|
|
|
|
|
|
BIT b,(IX+d) |
20 |
11 011 |
101 |
Z ^ инверсия (IX+d)b |
? |
X |
X |
0 |
1 |
|
|
11 001 |
011 |
|
|
|
|
|
|
|
|
- d |
- |
|
|
|
|
|
|
|
|
01 b |
110 |
|
|
|
|
|
|
BIT b,(IY+d) |
20 |
11 111 |
101 |
Z ^ инверсия (IY+d)b |
? |
X |
X |
0 |
1 |
|
|
11 001 |
011 |
|
|
|
|
|
|
|
|
- d |
- |
|
|
|
|
|
|
|
|
01 b |
110 |
|
|
|
|
|
|
SET b.r |
8 |
11 001 |
011 |
rb ^ 1 |
|
|
|
|
|
|
|
11 b |
r |
|
|
|
|
|
|
SET b,(HL) |
15 |
11 001 |
011 |
(HL)b ^ 1 |
|
|
|
|
|
|
|
11 b |
110 |
|
|
|
|
|
|
SET b,(IX+d) |
23 |
11 011 |
101 |
(IX+d)b ^ 1 |
|
|
|
|
|
|
|
11 001 |
011 |
|
|
|
|
|
|
|
|
- d |
- |
|
|
|
|
|
|
|
|
11 b |
110 |
|
|
|
|
|
|
SET b,(IY+d) |
23 |
11 111 |
101 |
(IY+d)b ^ 1 |
|
|
|
|
|
|
|
11 001 |
011 |
|
|
|
|
|
|
|
|
- d |
- |
|
|
|
|
|
|
|
|
11 b |
110 |
|
|
|
|
|
|
RES b,t |
|
10 |
|
tb ^ 0. Код 10 |
|
|
|
|
|
|
|
|
|
подставляется вместо |
|
|
|
|
|
|
|
|
|
11 в командах SET |
|
|
|
|
|
Таблица 5.1.8 Команды обмена
Команда |
T |
Код |
Пояснения |
C Z P S N H |
EX DE,HL |
4 |
11 |
101 |
011 |
DE ~ HL |
|
EX AF,AF' |
4 |
00 |
001 |
000 |
AF ~ AF' |
|
EXX |
4 |
11 |
011 |
001 |
BC ~ ВС' DE ~ DE' |
|
|
|
|
|
|
HL ~ HL' |
|
EX (SP),HL |
19 |
11 |
100 |
011 |
H ~ (SP+1) L ~ (SP) |
|
EX (SP),IX |
23 |
11 |
011 |
101 |
IXh ~ (SP+1) |
|
|
|
11 |
100 |
011 |
IXL ~ (SP) |
|
EX (SP),IY |
23 |
11 |
111 |
101 |
IYh ~ (SP+1) |
|
|
|
11 |
100 |
011 |
IYl ~ (SP) |
|
Таблица 5.1.9. Команды ввода вывода
Команда |
T |
Код |
Пояснения |
C Z |
P |
S |
N |
H |
IN A,(n) |
11 |
11 |
011 |
011 |
A ^ (n) ADR ^ A/n |
|
|
|
|
|
IN r,1C) |
12 |
11 |
n 101 |
101 |
r ^ (C) ADR ^ B/C |
? |
P |
? |
0 |
? |
|
|
01 |
r |
000 |
|
|
|
|
|
|
INF |
12 |
11 |
101 |
101 |
F ^ (C) ADR ^ B/C |
? |
P |
? |
0 |
? |
|
|
01 |
110 |
000 |
F-регистр флагов |
|
|
|
|
|
INI |
16 |
11 |
101 |
101 |
(HL)^(C) ADR^B/C |
? |
X |
X |
1 |
X |
|
|
10 |
100 |
010 |
затем B ^ B-1 |
Z= |
1, если B- |
1=0 |
|
|
|
|
|
|
HL ^ HL+1 |
Z=0, если B-1^0 |
|
INIR |
21 |
11 |
101 |
101 |
(HL)^(C) ADR^B/C |
1 |
X |
X |
1 |
X |
|
(16) |
10 |
110 |
010 |
затем B ^ B-1 |
|
|
|
|
|
|
|
|
|
|
HL ^ HL+1 |
|
|
|
|
|
|
|
|
|
|
и повтор до B=0 |
|
|
|
|
|
IND |
16 |
11 |
101 |
101 |
(HL)^(C) ADR^B/C |
? |
X |
X |
1 |
X |
|
|
10 |
101 |
010 |
затем B ^ B-1 |
Z= |
1, если B- |
1=0 |
|
|
|
|
|
|
HL ^ HL-1 |
Z=0, если B-1^0 |
|
Для некоторых команд в колонке T указано два значения - без скобок и в скобках:
- для условных команд JR, CALL, RET в скобках указано количество тактов выполнения команды при невыполнении условия;
- для "цикличных" команд DJNZ, LDIR, LDDR, CPIR, CPDR, INIR, INDR, OTIR. OTDR в скобках указано количество тактов, за которое выполняется команда в последний (перед завершением) раз.
|
|