Príloha E: Strojový kód procesora
Z-80
Inštrukcie
mikroprocesora Z-80 môžu byť jednobytové až štvorbytové a do dĺžky inštrukcie
sa počíta tiež dĺžka operandu. V kódovaní inštrukcií sa používajú 4 prefixy
(prvý byte inštrukcie). Tvar inštrukcie pre prefix CBh = 203d a Edh = 237d je
uvedený v tabuľke. Teda číslo 7Ah vyjadruje inštrukciu LD A,D. Ak však toto
číslo nasleduje po čísle CBh (v pamäti sú uložené po sebe číslo CBh a 7Ah),
potom vyjadruje inštrukciu BIT 7,D. Po čísle Edh (v pamäti sú po sebe uložené
čísla Edh a 7Ah) vyjadruje inštrukciu ADC HL, SP.
Prefix
DDh = 221d určuje, že inštrukcia pracuje s registrom IX, prefix FDh = 253d
určuje prácu s registrom IY. Teda číslo 23h = 35d vyjadruje inštrukciu INC HL.
Ak však toto číslo nasleduje po prefixe DDh, potom vyjadruje inštrukciu INC IX.
Obdobne úvahu platí i pre prefix inštrukcie IY. Prefix DDh alebo FDh môže byť
tiež pred prefixom CBh alebo Edh a inštrukcia opäť pracuje s registrami IX
alebo IY.
V
tabuľke sú zoradené inštrukcie mikroprocesora Z-80 vzostupne podľa ich kódov. V
stĺpci 'dekad' je uvedený dekadický kód inštrukcie, v stĺpci 'hexa'
šestnástkový
kód inštrukcie, v stĺpci 'inštrukcia' je uvedený mnemonický kód jednobytovej inštrukcie a v
stĺpcoch 'prefix CBh'
a 'prefix EDh' mnemonických
kód týchto inštrukcií. Ďalej používame v tabuľke písmeno N pre označenie
jednobytového operandu a číslo NN pre označenie dvojbytového operandu.
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
0 |
00 |
NOP |
RLC B |
|
1 |
01 |
LD BC, NN |
RLC C |
|
2 |
02 |
LD (BC),A |
RLC D |
|
3 |
03 |
INC BC |
RLC E |
|
4 |
04 |
INC B |
RLC H |
|
5 |
05 |
DEC B |
RLC L |
|
6 |
06 |
LD B,N |
RLC (HL) |
|
7 |
07 |
RLCA |
RLC A |
|
8 |
08 |
EX AF, AF' |
RRC B |
|
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
9 |
09 |
ADD HL,BC |
RRC C |
|
10 |
0A |
LD A,(BC) |
RRC D |
|
11 |
0B |
DEC BC |
RRC E |
|
12 |
0C |
INC C |
RRC H |
|
13 |
0D |
DEC C |
RRC I |
|
14 |
0E |
LD C,N |
RRC (HL) |
|
15 |
0F |
RRCA |
RRC A |
|
16 |
10 |
DJNZ N |
RL B |
|
17 |
11 |
LD DE,NN |
RL C |
|
18 |
12 |
LD (DE),A |
RL D |
|
19 |
13 |
INC DE |
RL E |
|
20 |
14 |
INC D |
RL H |
|
21 |
15 |
DEC D |
RL L |
|
22 |
16 |
LD D,N |
RL (HL) |
|
23 |
17 |
RLA |
RL A |
|
24 |
18 |
JR N |
RR B |
|
25 |
19 |
ADD HL,DE |
RR C |
|
26 |
1A |
LD A,(DE) |
RR D |
|
27 |
1B |
DEC DE |
RR E |
|
28 |
1C |
INC E |
RR H |
|
29 |
1D |
DEC E |
RR L |
|
30 |
1E |
LD E,N |
RR (HL) |
|
31 |
1F |
RRA |
RR A |
|
32 |
20 |
JR NZ,N |
SLA B |
|
33 |
21 |
LD HL,NN |
SLA C |
|
34 |
22 |
LD (NN),HL |
SLA D |
|
35 |
23 |
INC HL |
SLA E |
|
36 |
24 |
INC H |
SLA H |
|
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
37 |
25 |
DEC H |
SLA L |
|
38 |
26 |
LD H,N |
SLA (HL) |
|
39 |
27 |
DAA |
SLA A |
|
40 |
28 |
JR Z,N |
SRA B |
|
41 |
29 |
ADD HL,HL |
SRA C |
|
42 |
2A |
LD HL,(NN) |
SRA D |
|
43 |
2B |
DEC HL |
SRA E |
|
44 |
2C |
INC L |
SRA H |
|
45 |
2D |
DEC L |
SRA L |
|
46 |
2E |
LD L,N |
SRA (HL) |
|
47 |
2F |
CPL |
SRA A |
|
48 |
30 |
JR NC,N |
|
|
49 |
31 |
LD SP,NN |
|
|
50 |
32 |
LD (NN),A |
|
|
51 |
33 |
INC SP |
|
|
52 |
34 |
INC (HL) |
|
|
53 |
35 |
DEC (HL) |
|
|
54 |
36 |
LD (HL),N |
|
|
55 |
37 |
SCF |
|
|
56 |
38 |
JR C,N |
|
|
57 |
39 |
ADD HL,SP |
|
|
58 |
3A |
LD A,(NN) |
|
|
59 |
3B |
DEC SP |
|
|
60 |
3C |
INC A |
|
|
61 |
3D |
DEC A |
|
|
62 |
3E |
LD A,N |
|
|
63 |
3F |
CCF |
|
|
64 |
40 |
LD B,B |
BIT 0,B |
IN B,(C) |
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
65 |
41 |
LD B,C |
BIT 0,C |
OUT (C),B |
66 |
42 |
LD B,D |
BIT 0,D |
SBC HL,BC |
67 |
43 |
LD B,E |
BIT 0,E |
LD (NN),BC |
68 |
44 |
LD B,H |
BIT 0,H |
NEG |
69 |
45 |
LD B,L |
BIT 0,L |
RETN |
70 |
46 |
LD B,(HL) |
BIT 0,(HL) |
IM 0 |
71 |
47 |
LD B,A |
BIT 0,A |
LD I,A |
72 |
48 |
LD C,B |
BIT 1,B |
IN C,(C) |
73 |
49 |
LD C,C |
BIT 1,C |
OUT (C),C |
74 |
4A |
LD C,D |
BIT 1,D |
ADD HL,BC |
75 |
4B |
LD C,E |
BIT 1,E |
LD BC,(NN) |
76 |
4C |
LD C,H |
BIT 1,H |
|
77 |
4D |
LD C,L |
BIT 1,L |
RETI |
78 |
4E |
LD C,(HL) |
BIT 1,(HL) |
|
79 |
4F |
LD C,A |
BIT 1,A |
LD R,A |
80 |
50 |
LD D,B |
BIT 2,B |
IN D,(C) |
81 |
51 |
LD D,C |
BIT 2,C |
OUT (C),D |
82 |
52 |
LD D,D |
BIT 2,D |
SBC HL,DE |
83 |
53 |
LD D,E |
BIT 2,E |
LD (NN),DE |
84 |
54 |
LD D,H |
BIT 2,H |
|
85 |
55 |
LD D,L |
BIT 2,L |
|
86 |
56 |
LD D,(HL) |
BIT 2,(HL) |
IM 1 |
87 |
57 |
LD D,A |
BIT 2,A |
LD A,I |
88 |
58 |
LD E,B |
BIT 3,B |
IN E,(C) |
89 |
59 |
LD E,C |
BIT 3,C |
OUT (C),E |
90 |
5A |
LD E,D |
BIT 3,D |
ADC HL,DE |
91 |
5B |
LD E,E |
BIT 3,E |
LD DE,(NN) |
92 |
5C |
LD E,H |
BIT 3,H |
|
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
93 |
5D |
LD E,L |
BIT 3,L |
|
94 |
5E |
LD E,(HL) |
BIT 3,(HL) |
IM 2 |
95 |
5F |
LD E,A |
BIT 3,A |
LD A,R |
96 |
60 |
LD H,B |
BIT 4,B |
IN H,(C) |
97 |
61 |
LD H,C |
BIT 4,C |
OUT (C),H |
98 |
62 |
LD H,D |
BIT 4,D |
SBC HL,HL |
99 |
63 |
LD H,E |
BIT 4,E |
LD (NN),HL |
100 |
64 |
LD H,H |
BIT 4,H |
|
101 |
65 |
LD H,L |
BIT 4,L |
|
102 |
66 |
LD H,(HL) |
BIT 4,(HL) |
|
103 |
67 |
LD H,A |
BIT 4,A |
RRD |
104 |
68 |
LD L,B |
BIT 5,B |
IN L,(C) |
105 |
69 |
LD L,C |
BIT 5,C |
OUT (C),L |
106 |
6A |
LD L,D |
BIT 5,D |
ADC HL,HL |
107 |
6B |
LD L,E |
BIT 5,E |
LD (HL),NN |
108 |
6C |
LD L,H |
BIT 5,H |
|
109 |
6D |
LD L,L |
BIT 5,L |
|
110 |
6E |
LD L,(HL) |
BIT 5,(HL) |
|
111 |
6F |
LD L,A |
BIT 5,A |
RLD |
112 |
70 |
LD (HL),B |
BIT 6,B |
IN R,(C) |
113 |
71 |
LD (HL),C |
BIT 6,C |
|
114 |
72 |
LD (HL),D |
BIT 6,D |
SBC HL,SP |
115 |
73 |
LD (HL),E |
BIT 6,E |
LD (NN),SP |
116 |
74 |
LD (HL),H |
BIT 6,H |
|
117 |
75 |
LD (HL),L |
BIT 6,L |
|
118 |
76 |
HALT |
BIT 6,(HL) |
|
119 |
77 |
LD (HL),A |
BIT 6,A |
|
120 |
78 |
LD A,B |
BIT 7,B |
IN A,(C) |
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
121 |
79 |
LD A,C |
BIT 7,C |
OUT (C),A |
122 |
7A |
LD A,D |
BIT 7,D |
ADC HL,SP |
123 |
7B |
LD A,E |
BIT 7,E |
LD SP,(NN) |
124 |
7C |
LD A,H |
BIT 7,H |
|
125 |
7D |
LD A,L |
BIT 7,L |
|
126 |
7E |
LD A,(HL) |
BIT 7,(HL) |
|
127 |
7F |
LD A,A |
BIT 7,A |
|
128 |
80 |
ADD A,B |
RES 0,B |
|
129 |
81 |
ADD A,C |
RES 0,C |
|
130 |
82 |
ADD A,D |
RES 0,D |
|
131 |
83 |
ADD A,E |
RES 0,E |
|
132 |
84 |
ADD A,H |
RES 0,H |
|
133 |
85 |
ADD A,L |
RES 0,L |
|
134 |
86 |
ADD A,(HL) |
RES 0,(HL) |
|
135 |
87 |
ADD A,A |
RES 0,A |
|
136 |
88 |
ADC A,B |
RES 1,B |
|
137 |
89 |
ADC A,C |
RES 1,C |
|
138 |
8A |
ADC A,D |
RES 1,D |
|
139 |
8B |
ADC A,E |
RES 1,E |
|
140 |
8C |
ADC A,H |
RES 1,H |
|
141 |
8D |
ADC A,L |
RES 1,L |
|
142 |
8E |
ADC A,(HL) |
RES 1,(HL) |
|
143 |
8F |
ADC A,A |
RES 1,A |
|
144 |
90 |
SUB B |
RES 2,B |
|
145 |
91 |
SUB C |
RES 2,C |
|
146 |
92 |
SUB D |
RES 2,D |
|
147 |
93 |
SUB E |
RES 2,E |
|
148 |
94 |
SUB H |
RES 2,H |
|
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
149 |
95 |
SUB L |
RES 2,L |
|
150 |
96 |
SUB (HL) |
RES 2,(HL) |
|
151 |
97 |
SUB A |
RES 2,A |
|
152 |
98 |
SBC A,B |
RES 3,B |
|
153 |
99 |
SBC A,C |
RES 3,C |
|
154 |
9A |
SBC A,D |
RES 3,D |
|
155 |
9B |
SBC A,E |
RES 3,E |
|
156 |
9C |
SBC A,H |
RES 3,H |
|
157 |
9D |
SBC A,L |
RES 3,L |
|
158 |
9E |
SBC A,(HL) |
RES 3,(HL) |
|
159 |
9F |
SBC A,A |
RES 3,A |
|
160 |
A0 |
AND B |
RES 4,B |
LDI |
161 |
A1 |
AND C |
RES 4,C |
CPI |
162 |
A2 |
AND D |
RES 4,D |
INI |
163 |
A3 |
AND E |
RES 4,E |
OUTI |
164 |
A4 |
AND H |
RES 4,H |
|
165 |
A5 |
AND L |
RES 4,L |
|
166 |
A6 |
AND (HL) |
RES 4,(HL) |
|
167 |
A7 |
AND A |
RES 4,A |
|
168 |
A8 |
XOR B |
RES 5,B |
LDD |
169 |
A9 |
XOR C |
RES 5,C |
CPD |
170 |
AA |
XOR D |
RES 5,D |
IND |
171 |
AB |
XOR E |
RES 5,E |
OUTD |
172 |
AC |
XOR H |
RES 5,H |
|
173 |
AD |
XOR L |
RES 5,L |
|
174 |
AE |
XOR (HL) |
RES 5,(HL) |
|
175 |
AF |
XOR A |
RES 5,A |
|
176 |
B0 |
OR B |
RES 6,B |
LDIR |
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
177 |
B1 |
OR C |
RES 6,C |
CPIR |
178 |
B2 |
OR D |
RES 6,D |
INIR |
179 |
B3 |
OR E |
RES 6,E |
OTIR |
180 |
B4 |
OR H |
RES 6,H |
|
181 |
B5 |
OR L |
RES 6,L |
|
182 |
B6 |
OR (HL) |
RES 6,(HL) |
|
183 |
B7 |
OR A |
RES 6,A |
|
184 |
B8 |
CP B |
RES 7,B |
LDDR |
185 |
B9 |
CP C |
RES 7,C |
CPDR |
186 |
BA |
CP D |
RES 7,D |
INDR |
187 |
BB |
CP E |
RES 7,E |
OTDR |
188 |
BC |
CP H |
RES 7,H |
|
189 |
BD |
CP L |
RES 7,L |
|
190 |
BE |
CP (HL) |
RES 7,(HL) |
|
191 |
BF |
CP A |
RES 7,A |
|
192 |
C0 |
RET NZ |
SET 0,B |
|
193 |
C1 |
POP BC |
SET 0,C |
|
194 |
C2 |
JP NZ,NN |
SET 0,D |
|
195 |
C3 |
JP NN |
SET 0,E |
|
196 |
C4 |
CALL NZ,NN |
SET 0,H |
|
197 |
C5 |
PUSH BC |
SET 0,L |
|
198 |
C6 |
ADD A,N |
SET 0,(HL) |
|
199 |
C7 |
RST 0 |
SET 0,A |
|
200 |
C8 |
RET Z |
SET 1,B |
|
201 |
C9 |
RET |
SET 1,C |
|
202 |
CA |
JP Z,NN |
SET 1,D |
|
203 |
CB |
PREFIX |
SET 1,E |
|
204 |
CC |
CALL Z,NN |
SET 1,H |
|
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
205 |
CD |
CALL NN |
SET 1,L |
|
206 |
CE |
ADC A,N |
SET 1,(HL) |
|
207 |
CF |
RST 8 |
SET 1,A |
|
208 |
D0 |
RET NC |
SET 2,B |
|
209 |
D1 |
POP DE |
SET 2,C |
|
210 |
D2 |
JP NC,NN |
SET 2,D |
|
211 |
D3 |
OUT (N),A |
SET 2,E |
|
212 |
D4 |
CALL NC,NN |
SET 2,H |
|
213 |
D5 |
PUSH DE |
SET 2,L |
|
214 |
D6 |
SUB N |
SET 2,(HL) |
|
215 |
D7 |
RST 10h |
SET 2,A |
|
216 |
D8 |
RET C |
SET 3,B |
|
217 |
D9 |
EXX |
SET 3,C |
|
218 |
DA |
JP C,NN |
SET 3,D |
|
219 |
DB |
IN A,(N) |
SET 3,E |
|
220 |
DC |
CALL C,NN |
SET 3,H |
|
221 |
DD |
PREFIX IX |
SET 3,L |
|
222 |
DE |
SBC A,N |
SET 3,(HL) |
|
223 |
DF |
RST 18h |
SET 3,A |
|
224 |
E0 |
RET PO |
SET 4,B |
|
225 |
E1 |
POP HL |
SET 4,C |
|
226 |
E2 |
JP PO,NN |
SET 4,D |
|
227 |
E3 |
EX (SP),HL |
SET 4,E |
|
228 |
E4 |
CALL PO,NN |
SET 4,H |
|
229 |
E5 |
PUSH HL |
SET 4,L |
|
230 |
E6 |
AND N |
SET 4,(HL) |
|
231 |
E7 |
RST 20h |
SET 4,A |
|
232 |
E8 |
RET PE |
SET 5,B |
|
dekad |
hexa |
inštrukcia |
prefix
CBh |
prefix
EDh |
233 |
E9 |
JP (HL) |
SET 5,C |
|
234 |
EA |
JP PE,NN |
SET 5,D |
|
235 |
EB |
EX DE,HL |
SET 5,E |
|
236 |
EC |
CALL PE,NN |
SET 5,H |
|
237 |
ED |
PREFIX |
SET 5,L |
|
238 |
EE |
XOR N |
SET 5,(HL) |
|
239 |
EF |
RST 28h |
SET 5,A |
|
240 |
F0 |
RET P |
SET 6,B |
|
241 |
F1 |
POP AF |
SET 6,C |
|
242 |
F2 |
JP P,NN |
SET 6,D |
|
243 |
F3 |
DI |
SET 6,E |
|
244 |
F4 |
CALL P,NN |
SET 6,H |
|
245 |
F5 |
PUSH AF |
SET 6,L |
|
246 |
F6 |
OR N |
SET 6,(HL) |
|
247 |
F7 |
RST 30h |
SET 6,A |
|
248 |
F8 |
RET M |
SET 7,B |
|
249 |
F9 |
LD SP,HL |
SET 7,C |
|
250 |
FA |
JP M,NN |
SET 7,D |
|
251 |
FB |
EI |
SET 7,E |
|
252 |
FC |
CALL M,NN |
SET 7,H |
|
253 |
FD |
PREFIX IY |
SET 7,L |
|
254 |
FE |
CP N |
SET 7,(HL) |
|
255 |
FF |
RST 38h |
SET 7,A |
|