Instrukční soubor 8080A |
|
|
|
|
|
|
|
|
|
|
|
Název |
Argumenty |
Kód(hexa) |
Provedení |
Period |
Poznámka |
|
|
|
|
|
|
8-Bit instrukce přesunu |
|
|
|
|
|
|
|
|
|
|
|
MOV |
A,A |
7F |
do reg.A zkopíruj reg.A |
5 |
K čemu je dobré obsah A přepsat obsahem A ?? |
|
A,B |
78 |
A <- B |
5 |
|
|
A,C |
79 |
A <- C |
5 |
|
|
A,D |
7A |
A <- D |
5 |
|
|
A,E |
7B |
A <- E |
5 |
|
|
A,H |
7C |
A <- H |
5 |
|
|
A,L |
7D |
A <- L |
5
|
|
|
A,(HL) |
7E |
A <- (HL) |
7 |
do reg.A zkopíruj bajt paměi, adresa je v HL |
LDAX |
A,(BC) |
0A |
A <- (BC) |
7 |
Proč je tohle LDAX a ne MOVAX ví jen v Intelu |
|
A,(DE) |
1A |
A <- (DE) |
7 |
|
LDA |
A,(adresa) |
3A adresa |
A <- (adresa) |
13 |
|
MOV |
B,A |
47 |
B <- A |
5 |
|
|
B,B |
40 |
B <- B |
5 |
|
|
B,C |
41 |
B <- C |
5 |
|
|
B,D |
42 |
B <- D |
5 |
|
|
B,E |
43 |
B <- E |
5 |
|
|
B,H |
44 |
B <- H |
5 |
|
|
B,L |
45 |
B <- L |
5 |
|
|
B,(HL) |
46 |
B <- (HL) |
7 |
|
|
C,A |
4F |
C <- A |
5 |
|
|
C,B |
48 |
C <- B |
5 |
|
|
C,C |
49 |
C <- C |
5 |
|
|
C,D |
4A |
C <- D |
5 |
|
|
C,E |
4B |
C <- E |
5 |
|
|
C,H |
4C |
C <- H |
5 |
|
|
C,L |
4D |
C <- L |
5 |
|
|
C,(HL) |
4E |
C <- (HL) |
7 |
|
|
D,A |
57 |
D <- A |
5 |
|
|
D,B |
50 |
D <- B |
5 |
|
|
D,C |
51 |
D <- C |
5 |
|
|
D,D |
52 |
D <- D |
5 |
|
|
D,E |
53 |
D <- E |
5 |
|
|
D,H |
54 |
D <- H |
5 |
|
|
D,L |
55 |
D <- L |
5 |
|
|
D,(HL) |
56 |
D <- (HL) |
7 |
|
|
E,A |
5F |
E <- A |
5 |
|
|
E,B |
58 |
E <- B |
5 |
|
|
E,C |
59 |
E <- C |
5 |
|
|
E,D |
5A |
E <- D |
5 |
|
|
E,E |
5B |
E <- E |
5 |
|
|
E,H |
5C |
E <- H |
5 |
|
|
E,L |
5D |
E <- L |
5 |
|
|
E,(HL) |
5E |
E <- (HL) |
7 |
|
|
H,A |
67 |
H <- A |
5 |
|
|
H,B |
60 |
H <- B |
5 |
|
|
H,C |
61 |
H <- C |
5 |
|
|
H,D |
62 |
H <- D |
5 |
|
|
H,E |
63 |
H <- E |
5 |
|
|
H,H |
64 |
H <- H |
5 |
|
|
H,L |
65 |
H <- L |
5 |
|
|
H,(HL) |
66 |
H <- (HL) |
7 |
|
|
L,A |
6F |
L <- A |
5 |
|
|
L,B |
68 |
L <- B |
5 |
|
|
L,C |
69 |
L <- C |
5 |
|
|
L,D |
6A |
L <- D |
5 |
|
|
L,E |
6B |
L <- E |
5 |
|
|
L,H |
6C |
L <- H |
5 |
|
|
L,L |
6D |
L <- L |
5 |
|
|
L,(HL) |
6E |
L <- (HL) |
7 |
|
|
(HL),A |
77 |
(HL) <- A |
7 |
|
|
(HL),B |
70 |
(HL) <- B |
7 |
|
|
(HL),C |
71 |
(HL) <- C |
7 |
|
|
(HL),D |
72 |
(HL) <- D |
7 |
|
|
(HL),E |
73 |
(HL) <- E |
7 |
|
|
(HL),H |
74 |
(HL) <- H |
7 |
|
|
(HL),L |
75 |
(HL) <- L |
7 |
|
MVI |
A,byte |
3Ebyte |
A <- byte |
7 |
|
|
B,byte |
06byte |
B <- byte |
7 |
|
|
C,byte |
0Ebyte |
C <- byte |
7 |
|
|
D,byte |
16byte |
D <- byte |
7 |
|
|
E,byte |
1Ebyte |
E <- byte |
7 |
|
|
H,byte |
26byte |
H <- byte |
7 |
|
|
L,byte |
2Ebyte |
L <- byte |
7 |
|
|
(HL),byte |
36byte |
(HL) <-byte |
10 |
|
STAX |
(BC),A |
2 |
(BC) <- A |
7 |
|
STAX |
(DE),A |
12 |
(DE) <- A |
7 |
|
STA |
(slovo),A |
32slovo |
(slovo) <- A |
13 |
|
|
|
|
|
|
|
16 instrukce přesunu |
|
|
|
|
|
|
|
|
|
|
|
LXI |
BC,slovo |
01slovo |
BC <- slovo |
10 |
|
|
DE,slovo |
11slovo |
DE <- slovo |
10 |
|
|
HL,slovo |
21slovo |
HL <- slovo |
10 |
|
|
SP,slovo |
31slovo |
SP <- slovo |
10 |
|
LHLD |
HL,(slovo) |
2Aslovo |
HL <- (slovo) |
16 |
|
SHLD |
(slovo),HL |
22slovo |
(slovo) <- HL |
16 |
|
SPHL |
SP,HL |
F9 |
SP <- HL |
5 |
|
|
|
|
|
|
|
instrukce prohazování registrů |
|
|
|
|
|
XCHG |
DE,HL |
EB |
HL <-> DE |
4 |
|
XTHL |
(SP),HL |
E3 |
H <-> (SP+1); L <-> (SP) |
18 |
|
|
|
|
|
|
|
Součet |
|
|
|
|
|
|
|
|
|
|
|
ADD |
A,A |
87 |
A <- A + A |
4 |
|
|
A,B |
80 |
A <- A + B |
4 |
|
|
A,C |
81 |
A <- A + C |
4 |
|
|
A,D |
82 |
A <- A + D |
4 |
|
|
A,E |
83 |
A <- A + E |
4 |
|
|
A,H |
84 |
A <- A + H |
4 |
|
|
A,L |
85 |
A <- A + L |
4 |
|
|
A,(HL) |
86 |
A <- A + (HL) |
7 |
|
ADI |
A,byte |
C6byte |
A <- A + byte |
7 |
|
|
|
|
|
|
|
součet s příznakem přetečení CY |
|
|
|
|
|
|
|
|
|
|
|
ADC |
A,A |
8F |
A <- A + A + CY |
4 |
|
|
A,B |
88 |
A <- A + B + CY |
4 |
|
|
A,C |
89 |
A <- A + C + CY |
4 |
|
|
A,D |
8A |
A <- A + D + CY |
4 |
|
|
A,E |
8B |
A <- A + E + CY |
4 |
|
|
A,H |
8C |
A <- A + H + CY |
4 |
|
|
A,L |
8D |
A <- A + L + CY |
4 |
|
|
A,(HL) |
8E |
A <- A + (HL) + CY |
7 |
|
ACI |
A,byte |
CEbyte |
A <- A + byte + CY |
7 |
|
|
|
|
|
|
|
odčítání |
|
|
|
|
|
|
|
|
|
|
|
SUB |
A |
97 |
A <- A - A |
4 |
|
|
B |
90 |
A <- A - B |
4 |
|
|
C |
91 |
A <- A - C |
4 |
|
|
D |
92 |
A <- A - D |
4 |
|
|
E |
93 |
A <- A - E |
4 |
|
|
H |
94 |
A <- A - H |
4 |
|
|
L |
95 |
A <- A - L |
4 |
|
|
(HL) |
96 |
A <- A - (HL) |
7 |
|
SUI |
byte |
D6byte |
A <- A - byte |
7 |
|
|
|
|
|
|
|
odečítání s příznakem CY |
|
|
|
|
|
|
|
|
|
|
|
SBB |
A |
9F |
A <- A - A - CY |
4 |
|
|
B |
98 |
A <- A - B - CY |
4 |
|
|
C |
99 |
A <- A - C - CY |
4 |
|
|
D |
9A |
A <- A - D - CY |
4 |
|
|
E |
9B |
A <- A - E - CY |
4 |
|
|
H |
9C |
A <- A - H - CY |
4 |
|
|
L |
9D |
A <- A - L - CY |
4 |
|
|
(HL) |
9E |
A <- A - (HL) - CY |
7 |
|
SBI |
byte |
DEbyte |
A <- A - byte - CY |
7 |
|
|
|
|
|
|
|
16 bit součet |
|
|
|
|
|
|
|
|
|
|
|
DAD |
HL,BC |
9 |
HL <- HL + BC |
10 |
|
|
HL,DE |
19 |
HL <- HL + DE |
10 |
|
|
HL,HL |
29 |
HL <- HL + HL |
10 |
|
|
HL,SP |
39 |
HL <- HL + SP |
10 |
|
|
|
|
|
|
|
instrukce pro řízení procesoru |
|
|
|
|
|
|
|
|
|
|
|
DI |
|
F3 |
IFF <- 0 (zakáľe přeruąení) |
4 |
|
EI |
|
FB |
IFF <- 1 (povolí přeruąení) |
4 |
|
NOP |
|
0 |
No Operation (nic nedělá, jen zdrľuje...) |
4 |
má kód také 08, 10, 18, 28, 30, 38, záleží na výrobci |
HLT |
|
76 |
NOP;PC <- PC-1 |
7 |
|
|
|
|
|
|
|
zvyš o 1 registr |
|
|
|
|
|
|
|
|
|
|
|
INR |
A |
3C |
A <- A + 1 |
5 |
|
|
B |
4 |
B <- B + 1 |
5
|
|
|
C |
0C |
C <- C + 1 |
5
|
|
|
D |
14 |
D <- D + 1 |
5
|
|
|
E |
1C |
E <- E + 1 |
5
|
|
|
H |
24 |
H <- H + 1 |
5
|
|
|
L |
2C |
L <- L + 1 |
5
|
|
|
(HL) |
34 |
(HL) <- (HL) + 1 |
10 |
|
|
|
|
|
|
|
sniž o 1 registr |
|
|
|
|
|
|
|
|
|
|
|
DCR |
A |
3D |
A <- A - 1 |
5 |
|
|
B |
5 |
B <- B - 1 |
5
|
|
|
C |
0D |
C <- C - 1 |
5
|
|
|
D |
15 |
D <- D - 1 |
5
|
|
|
E |
1D |
E <- E - 1 |
5
|
|
|
H |
25 |
H <- H - 1 |
5
|
|
|
L |
2D |
L <- L - 1 |
5
|
|
|
(HL) |
35 |
(HL) <- (HL) - 1 |
10 |
|
|
|
|
|
|
|
zvyš pár registrů o 1 |
|
|
|
|
|
|
|
|
|
|
|
INX |
BC |
3 |
BC <- BC + 1 |
5 |
|
|
DE |
13 |
DE <- DE + 1 |
5
|
|
|
HL |
23 |
HL <- HL + 1 |
5
|
|
|
SP |
33 |
SP <- SP + 1 |
5
|
|
|
|
|
|
|
|
sniž pár registrů o 1 |
|
|
|
|
|
|
|
|
|
|
|
DCX |
BC |
0B |
BC <- BC - 1 |
5
|
|
|
DE |
1B |
DE <- DE - 1 |
5
|
|
|
HL |
2B |
HL <- HL - 1 |
5
|
|
|
SP |
3B |
SP <- SP - 1 |
5
|
|
|
|
|
|
|
|
Hrátky s akumulátorem a příznaky |
|
|
|
|
|
|
|
|
|
|
|
DAA |
|
27 |
dekadická korekce A |
4 |
|
CMA |
|
2F |
A <- NOT A |
4
|
|
STC |
|
37 |
CF (CY Flag) <- 1 |
4
|
|
CMC |
|
3F |
CF (CY Flag) <- 0 |
4
|
|
|
|
|
|
|
|
rotace - posuny |
|
|
|
|
Rotující kedluben dopadl mi na buben |
|
|
|
|
|
|
RLC |
|
7 |
Posun bitů A vlevo |
4 |
pokud se přesune 1 z bitu 7 do bitu 0, pak CY=1 |
RRC |
|
0F |
Posun bitů A vpravo |
4
|
pokud se přesune 1 z bitu O do bitu 7, pak CY=1 |
RAL |
|
17 |
Posun bitů A + CY vlevo |
4
|
přistupuje k A a CY jako k jednomu 9íti bitovému slovu |
RAR |
|
1F |
Posun bitů A + CY vpravo |
4
|
přistupuje k A a CY jako k jednomu 9íti bitovému slovu |
|
|
|
|
|
|
logické operace |
|
|
|
|
|
|
|
|
|
|
|
ANA |
A |
A7 |
A <- A AND A |
4
|
|
|
B |
A0 |
A <- A AND B |
4
|
|
|
C |
A1 |
A <- A AND C |
4
|
|
|
D |
A2 |
A <- A AND D |
4
|
|
|
E |
A3 |
A <- A AND E |
4
|
|
|
H |
A4 |
A <- A AND H |
4
|
|
|
L |
A5 |
A <- A AND L |
4
|
|
|
(HL) |
A6 |
A <- A AND (HL) |
7 |
|
ANI |
byte |
E6byte |
A <- A AND byte |
7
|
|
XRA |
A |
AF |
A <- A XOR A |
4 |
|
|
B |
A8 |
A <- A XOR B |
4
|
|
|
C |
A9 |
A <- A XOR C |
4
|
|
|
D |
AA |
A <- A XOR D |
4
|
|
|
E |
AB |
A <- A XOR E |
4
|
|
|
H |
AC |
A <- A XOR H |
4
|
|
|
L |
AD |
A <- A XOR L |
4
|
|
|
(HL) |
AE |
A <- A XOR (HL) |
7 |
|
XRI |
byte |
EEbyte |
A <- A XOR byte |
7
|
|
ORA |
A |
B7 |
A <- A OR A |
4 |
|
|
B |
B0 |
A <- A OR B |
4
|
|
|
C |
B1 |
A <- A OR C |
4
|
|
|
D |
B2 |
A <- A OR D |
4
|
|
|
E |
B3 |
A <- A OR E |
4
|
|
|
H |
B4 |
A <- A OR H |
4
|
|
|
L |
B5 |
A <- A OR L |
4
|
|
|
(HL) |
B6 |
A <- A OR (HL) |
7 |
|
ORI |
byte |
F6byte |
A <- A OR byte |
7
|
|
CMP |
A |
BF |
A - A |
4 |
porovnání A s A?Tahle instrukce se má jmenovat SET Z=1 |
|
B |
B8 |
A - B |
4
|
|
|
C |
B9 |
A - C |
4
|
|
|
D |
BA |
A - D |
4
|
|
|
E |
BB |
A - E |
4
|
|
|
H |
BC |
A - H |
4
|
|
|
L |
BD |
A - L |
4
|
|
|
(HL) |
BE |
A - (HL) |
7 |
|
CPI |
slabika |
FEslabika |
A - slabika |
7
|
|
|
|
|
|
|
|
skoky podmíněné i nepodmíněné |
|
|
|
|
|
|
|
|
|
|
|
JMP |
adresa |
C3adresa |
PC <- adresa |
10
|
|
JNZ |
NZ,adresa |
C2adresa |
If NZ, PC <- adresa |
10
|
|
JZ |
Z,adresa |
CAadresa |
If Z, PC <- adresa |
10
|
|
JNC |
NC,adresa |
D2adresa |
If NC, PC <- adresa |
10
|
|
JC |
C,adresa |
DAadresa |
If C, PC <- adresa |
10
|
|
JPO |
PO,adresa |
E2adresa |
If PO, PC <- adresa |
10
|
|
JPE |
PE,adresa |
EAadresa |
If PE, PC <- adresa |
10
|
|
JP |
P,adresa |
F2adresa |
If P, PC <- adresa |
10
|
|
JM |
M,adresa |
FAadresa |
If M, PC <- adresa |
10 |
|
PCHL |
(HL) |
E9 |
PC <- HL |
5 |
|
CALL |
adresa |
CDadresa |
(SP-1) <- PCh;(SP-2) <- PCl |
17 |
DD, ED, FD hexa provedou také CALL (závisí na výrobci) |
CNZ |
NZ,adresa |
C4adresa |
If NZ, CALL adresa |
11
|
tady je to složitější, když je podmínka splněna tak 17 |
CZ |
Z,adresa |
CCadresa |
If Z, CALL adresa |
11
|
když je podmínka splněna tak 17 |
CNC |
NC,adresa |
D4adresa |
If NC, CALL adresa |
11
|
když je podmínka splněna tak 17 |
CC |
C,adresa |
DCadresa |
If C, CALL adresa |
11
|
tkdyž je podmínka splněna tak 17 |
CPO |
PO,adresa |
E4adresa |
If PO, CALL adresa |
11
|
tkdyž je podmínka splněna tak 17 |
CPE |
PE,adresa |
ECadresa |
If PE, CALL adresa |
11
|
když je podmínka splněna tak 17 |
CP |
P,adresa |
F4adresa |
If P, CALL adresa |
11
|
když je podmínka splněna tak 17 |
CM |
M,adresa |
FCadresa |
If M, CALL adresa |
11
|
tkdyž je podmínka splněna tak 17 |
RET |
|
C9 |
PCl <- (SP);PCh <-(SP+1) |
10
|
D9 provede také RET(závisí na výrobci) |
RNZ |
NZ |
C0 |
If NZ, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RZ |
Z |
C8 |
If Z, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RNC |
NC |
D0 |
If NC, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RC |
C |
D8 |
If C, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RPO |
PO |
E0 |
If PO, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RPE |
PE |
E8 |
If PE, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RP |
P |
F0 |
If P, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RM |
M |
F8 |
If M, RET |
5
|
tkdyž je podmínka splněna tak 11 |
RST 0 |
0H |
C7 |
CALL 0H |
11
|
|
RST 1 |
8H |
CF |
CALL 8H |
11 |
|
RST 2 |
10H |
D7 |
CALL 10H |
11 |
|
RST 3 |
18H |
DF |
CALL 18H |
11 |
|
RST 4 |
20H |
E7 |
CALL 20H |
11 |
|
RST 5 |
28H |
EF |
CALL 28H |
11 |
|
RST 6 |
30H |
F7 |
CALL 30H |
11 |
|
RST 7 |
38H |
FF |
CALL 38H |
11 |
|
|
|
|
|
|
|
práce se zasobníkem |
|
|
|
|
|
|
|
|
|
|
|
PUSH |
BC |
C5 |
(SP-2) <- C; (SP-1) <- B; SP <- SP - 2 |
11 |
|
|
DE |
D5 |
(SP-2) <- E; (SP-1) <- D; SP <- SP - 2 |
11 |
|
|
HL |
E5 |
(SP-2) <- L; (SP-1) <- H; SP <- SP - 2 |
11 |
|
|
AF |
F5 |
(SP-2) <- F; (SP-1) <- A; SP <- SP - 2 |
11 |
F - registr příznaků |
POP |
BC |
C1 |
B <- (SP+1); C <- (SP), SP <- SP + 2 |
10 |
|
|
DE |
D1 |
D <- (SP+1); E <- (SP); SP <- SP + 2 |
10 |
|
|
HL |
E1 |
H <- (SP+1); L <- (SP); SP <- SP + 2 |
10 |
|
|
AF |
F1 |
A <- (SP+1); F <- (SP); SP
<- SP + 2 |
10 |
F - registr příznaků |
|
|
|
|
|
|
instrukce pro vstup, výstup |
|
|
|
|
|
|
|
|
|
|
|
IN |
A,(byte) |
DBbyte |
A <- [byte] |
10 |
|
OUT |
(byte),A |
D3byte |
[byte] <- A |
10 |
|