Procesor 8080
Lista i kody rozkazów
1. Informacje ogólne
Rejestry
A (Acc) 8 F(Flagi) 8 Dla par rejestrów BC, DE, HL, starsza część słowa B
8 C
8 znajduje się w rejestrach odpowiednio: B, D, H.
D
8 E
8
H
8 L
8
PC (Program Counter)
16
SP (Stack Pointer)
16
Rejestr F (Flagi)
7
0
SF ZF
0 AC 0
PF
1 CY
SF – flaga znaku, ZF – flaga zera, AC – flaga przeniesienia połówkowego, PF – flaga parzystości, CY – flaga przeniesienia binarnego Objaśnienia do listy rozkazów:
Flagi
Oznaczenia
SYMBOL
s,d – rejestr: A,B,C,D,E,H,L,M(HL) ZMIANY
Z
S
CY
P
AC
FLAG
p – para rejestrów: B=BC,D=DE,H=HL,SP
A
↑↓
↑↓
↑↓
↑↓
↑↓
n– wartość 8-bitowa
nn – wartość 16-bitowa B
↑↓
↑↓
●
↑↓
↑↓
a – adres 16-bitowy
C
●
●
↑↓
●
●
M( a) – komórka pamięci o adresie a D
↑↓
w – warunek skoku
↑↓
0
↑↓
0
Uwagi:
E
●
●
1
●
●
(1) cykle a/ b: b cykli gdy występuje N
odwołanie do pamięci, a – w przeciwnym
●
●
●
●
●
przypadku
↑↓ zmiana zgodnie wynikiem operacji (2) cykle a/ b: b cykli jeżeli warunek w był
0 zerowanie
prawdziwy, a – w przeciwnym przypadku 1 ustawienie jedynki
(3) zmiana flag N/ A: A jeżeli p=PSW, N w
● bez zmiany
przeciwnym przypadku
Symbole warunków skoku w
NZ
– not zero
(Z=0) PO
– parity odd
(P=0)
Z
– zero
(Z=1) PE
– parity even
(P=1)
NC
– no carry
(CY=0) P
– plus
(S=0)
C
– carry
(CY=1) M
– minus
(S=1)
DŁ. W
OPIS
ZMIANA
CYKLE
UWAGI
MNEMONICZNY
BAJTACH
FLAG
ARYTMETYCZNE
ADC
s
1
A←A+ s+CY
A
4/7
(1)
ACI
n
2
A←A+ n+CY
A
7
ADD
s
1
A←A+ s
A
4/7
(1)
ADI
n
2
A←A+ n
A
7
SBB
s
2
A←A– s+ CY
A
4/7
(1)
SBI
n
1
A←A– n+CY
A
7
SUB
s
1
A←A– s
A
4/7
(1)
SUI
n
2
A←A– n
A
7
INR
d
1
d← d+1
B
5/7
(1)
INX
p
1
p← p+1
N
5
DCR
d
1
d← d–1
B
5/10
(1)
DCX
p
1
p← p–1
N
5
DAD
p
1
HL←HL+ p
C
10
DAA
1
korekcja dziesiętna A
A
4
CMP
s
2
porównanie A z s
A
4/7
(1)
CPI
n
1
porównanie A z n
A
7
LOGICZNE
ANA
s
2
A←A ∧ s
D
4/7
(1)
ANI
n
1
A←A ∧ n
D
7
ORA
s
2
A←A ∨ s
D
4/7
(1)
ORI
n
1
A←A ∨ n
D
7
XRA
s
2
A←A ⊕ s
D
4/7
(1)
XRI
n
1
A←A ⊕ n
D
7
CMA
1
A← ~A
C
4
RAL
1
C
4
CY
0 ← 7
RLC
1
C
4
CY
0 ← 7
RAR
1
C
4
CY
0 → 7
RRC
1
C
4
CY
0 → 7
CMC
1
CY← ~CY
C
4
STC
1
CY←1
E
4
PRZESUWANIE
MOV
d, s
1
d← s
N
5/7
(1)
MVI
d, n
2
d← n
N
7/10
(1)
LDA
a
3
A←M( a)
N
13
STA
a
3
M( a)←A
N
13
LDAX
p
1
A←M( p)
N
7
p=B
STAX
p
1
M( p)←A
N
7
lub D
LHLD
a
3
L←M( a)
N
16
H←M( a+1)
SHLD
a
3
M( a)←L
N
16
M( a+1)←H
LXI
p,nn
3
p← nn
N
10
SPHL
1
SP←HL
N
5
SKRÓT
DŁ. W
OPIS
ZMIANA
CYKLE
UWAGI
MNEMONICZNY
BAJTACH
FLAG
SKOKI I POWROTY
JMP
a
3
PC← a
N
10
J w
a
3
JMP a jeżeli spełniony warunek w N
10
CALL a
3
M(SP–1)←PCH
N
17
M(SP–2)←PCL
SP←SP–2
PC← a
C w
a
3
CALL a jeżeli spełniony warunek w N
11/17
(2)
RET
1
PCL←M(SP)
N
10
PCH←M(SP+1)
SP←SP+2
R w
1
RET jeżeli spełniony warunek w N
5/11
(2)
PCHL
1
PC←HL
N
5
RST
n
1
CALL 8* n
N
11
n=0,1,2,…,7
WEJŚCIE/WYJŚCIE
IN
n
2
A←wej( n)
N
10
OUT
n
2
wyj( n) ←A
N
10
STOS:
PUSH p
1
M(SP–1) ← p H
N
11
p=B, D, H
M(SP–2) ← p L
lub PSW
SP←SP–2
POP
p
1
p L←M(SP)
N/A
10
p=B, D, H
p H←M(SP+1)
lub PSW
SP←SP+2
(3)
XTHL
1
L↔M(SP)
N
18
H↔M(SP+1)
POZOSTAŁE
DI
1
zablokowanie przerwań
N
4
EI
1
odblokowanie przerwań
N
4
HLT
1
stop
N
7
NOP
1
brak operacji
N
4
3. Kody rozkazów
UPORZĄDKOWANE ALFABETYCZNIE WEDŁUG MNEMONIKÓW ROZKAZÓW
MNEMONIK
KOD
MNEMONIK
KOD
MNEMONIK
KOD
MNEMONIK
KOD
MNEMONIK
KOD
ADC A
8F DAD B
09 LXI SP, nn
31 MOV L,H
6C RPE
E8
ADC B
88 DAD D
19 MOV A,B
78 MOV L,M
6E RPO
E0
ADC C
89 DAD H
29 MOV A,C
79 MOV M,A
77 RST 0
C7
ADC D
8A DAD SP
39 MOV A,D
7A MOV M,B
70 RST 1
CF
ADC E
8B DCR A
3D MOV A,E
7B MOV M,C
71 RST 2
D7
ADC H
8C DCR B
05 MOV A,H
7C MOV M,D
72 RST 3
DF
ADC L
8D DCR C
0D MOV A,L
7D MOV M,E
73 RST 4
E7
ADC M
8E DCR D
15 MOV A,M
7E MOV M,H
74 RST 5
EF
ACI n
CE DCR E
1D MOV B,A
47 MOV M,L
75 RST 6
F7
ADD A
87 DCR H
25 MOV B,C
41 MVI A, n
3E RST 7
FF
ADD B
80 DCR L
2D MOV B,D
42 MVI B, n
06 SBB A
9F
ADD C
81 DCR M
35 MOV B,E
43 MVI C, n
0E SBB B
98
ADD D
82 DCX B
0B MOV B,H
44 MVI D, n
16 SBB C
99
ADD E
83 DCX D
1B MOV B,L
45 MVI E, n
1E SBB D
9A
ADD H
84 DCX H
2B MOV B,M
46 MVI H, n
26 SBB E
9B
ADD L
85 DCX SP
3B MOV C,A
4F MVI L, n
2E SBB H
9C
ADD M
86 DI
F3 MOV C,B
48 MVI M, n
36 SBB L
9D
ADI n
C6 EI
FB MOV C,D
4A NOP
00 SBB M
9E
ANA A
A7 HLT
76 MOV C,E
4B ORA A
B7 SBI n
DE
ANA B
A0 IN n
DB MOV C,H
4C ORA B
B0 SHLD a
22
ANA C
A1 INR A
3C MOV C,L
4D ORA C
B1 SPAL
F9
ANA D
A2 INR B
04 MOV C,M
4E ORA D
B2 STA a
32
ANA E
A3 INR C
0C MOV D,A
57 ORA E
B3 STAX B
02
ANA H
A4 INR D
14 MOV D,B
50 ORA H
B4 STAX D
12
ANA L
A5 INR E
1C MOV D,C
51 ORA L
B5 STC
37
ANA M
A6 INR H
24 MOV D,E
53 ORA M
B6 SUB A
97
ANI n
E6 INR L
2C MOV D,H
54 ORI n
F6 SUB B
90
CALL a
CD INR M
34 MOV D,L
55 OUT n
D3 SUB C
91
CZ a
CC INX B
03 MOV D,M
56 PCHL
E9 SUB D
92
CNZ a
C4 INX D
13 MOV E,A
5F POP B
C1 SUB E
93
CP a
F4 INX H
23 MOV E,B
58 POP D
D1 SUB H
94
CM a
FC INX SP
33 MOV E,C
59 POP H
E1 SUB L
95
CC a
DC JMP a
C3 MOV E,D
5A POP PSW
F1 SUB M
96
CNC a
D4 JZ a
CA MOV E,H
5C PUSH B
C5 SUI n
D6
CPE a
EC JNZ a
C2 MOV E,L
5D PUSH D
D5 XCHG
EB
CPO a
E4 JP a
F2 MOV E,M
5E PUSH H
E5 XRA A
AF
CMA
2F JM a
FA MOV H,A
67 PUSH PSW
F5 XRA B
A8
CMC
3F JC a
DA MOV H,B
60 RAL
17 XRA C
A9
CMP A
BF JNC a
D2 MOV H,C
61 RAR
1F XRA D
AA
CMP B
B8 JPE a
EA MOV H,D
62 RLC
07 XRA E
AB
CMP C
B9 JPO a
E2 MOV H,E
63 RRC
0F XRA H
AC
CMP D
BA LDA a
3A MOV H,L
65 RET
C9 XRA L
AD
CMP E
BB LDAX B
0A MOV H,M
66 RZ
C8 XRA M
AE
CMP H
BC LDAX D
1A MOV L,A
6F RNZ
C0 XRI n
EE
CMP L
BD LHLD a
2A MOV L,B
68 RP
F0 XTHL
E3
CMP M
BE LXI B, nn
01 MOV L,C
69 RM
F8
CPI n
FE LXI D, nn
11 MOV L,D
6A RC
D8
DAA
27 LXI H, nn
21 MOV L,E
6B RNC
D0
UPORZĄDKOWANE NUMERYCZNIE WEDŁUG ROSNĄCYCH KODÓW ROZKAZÓW
MNEMONIK
KOD
MNEMONIK
KOD
MNEMONIK
KOD
MNEMONIK
KOD
MNEMONIK
KOD
NOP
00 MVI M, n
36 MOV L,H
6C SBB M
9E RST 1
CF
LXI B, nn
01 STC
37 MOV L,M
6E SBB A
9F RNC
D0
STAX B
02 DAD SP
39 MOV L,A
6F ANA B
A0 POP D
D1
INX B
03 LDA a
3A MOV M,B
70 ANA C
A1 JNC a
D2
INR B
04 DCX SP
3B MOV M,C
71 ANA D
A2 OUT n
D3
DCR B
05 INR A
3C MOV M,D
72 ANA E
A3 CNC a
D4
MVI B, n
06 DCR A
3D MOV M,E
73 ANA H
A4 PUSH D
D5
RLC
07 MVI A, n
3E MOV M,H
74 ANA L
A5 SUI n
D6
DAD B
09 CMC
3F MOV M,L
75 ANA M
A6 RST 2
D7
LDAX B
0A MOV B,C
41 HLT
76 ANA A
A7 RC
D8
DCX B
0B MOV B,D
42 MOV M,A
77 XRA B
A8 JC a
DA
INR C
0C MOV B,E
43 MOV A,B
78 XRA C
A9 IN n
DB
DCR C
0D MOV B,H
44 MOV A,C
79 XRA D
AA CC a
DC
MVI C, n
0E MOV B,L
45 MOV A,D
7A XRA E
AB SBI n
DE
RRC
0F MOV B,M
46 MOV A,E
7B XRA H
AC RST 3
DF
LXI D, nn
11 MOV B,A
47 MOV A,H
7C XRA L
AD RPO
E0
STAX D
12 MOV C,B
48 MOV A,L
7D XRA M
AE POP H
E1
INX D
13 MOV C,D
4A MOV A,M
7E XRA A
AF JPO a
E2
INR D
14 MOV C,E
4B ADD B
80 ORA B
B0 XTHL
E3
DCR D
15 MOV C,H
4C ADD C
81 ORA C
B1 CPO a
E4
MVI D, n
16 MOV C,L
4D ADD D
82 ORA D
B2 PUSH H
E5
RAL
17 MOV C,M
4E ADD E
83 ORA E
B3 ANI n
E6
DAD D
19 MOV C,A
4F ADD H
84 ORA H
B4 RST 4
E7
LDAX D
1A MOV D,B
50 ADD L
85 ORA L
B5 RPE
E8
DCX D
1B MOV D,C
51 ADD M
86 ORA M
B6 PCHL
E9
INR E
1C MOV D,E
53 ADD A
87 ORA A
B7 JPE a
EA
DCR E
1D MOV D,H
54 ADC B
88 CMP B
B8 XCHG
EB
MVI E, n
1E MOV D,L
55 ADC C
89 CMP C
B9 CPE a
EC
RAR
1F MOV D,M
56 ADC D
8A CMP D
BA XRI n
EE
LXI H, nn
21 MOV D,A
57 ADC E
8B CMP E
BB RST 5
EF
SHLD a
22 MOV E,B
58 ADC H
8C CMP H
BC RP
F0
INX H
23 MOV E,C
59 ADC L
8D CMP L
BD POP PSW
F1
INR H
24 MOV E,D
5A ADC M
8E CMP M
BE JP a
F2
DCR H
25 MOV E,H
5C ADC A
8F CMP A
BF DI
F3
MVI H, n
26 MOV E,L
5D SUB B
90 RNZ
C0 CP a
F4
DAA
27 MOV E,M
5E SUB C
91 POP B
C1 PUSH PSW F5
DAD H
29 MOV E,A
5F SUB D
92 JNZ a
C2 ORI n
F6
LHLD a
2A MOV H,B
60 SUB E
93 JMP a
C3 RST 6
F7
DCX H
2B MOV H,C
61 SUB H
94 CNZ a
C4 RM
F8
INR L
2C MOV H,D
62 SUB L
95 PUSH B
C5 SPAL
F9
DCR L
2D MOV H,E
63 SUB M
96 ADI n
C6 JM a
FA
MVI L, n
2E MOV H,L
65 SUB A
97 RST 0
C7 EI
FB
CMA
2F MOV H,M
66 SBB B
98 RZ
C8 CM a
FC
LXI SP, nn
31 MOV H,A
67 SBB C
99 RET
C9 CPI n
FE
STA a
32 MOV L,B
68 SBB D
9A JZ a
CA RST 7
FF
INX SP
33 MOV L,C
69 SBB E
9B CZ a
CC
INR M
34 MOV L,D
6A SBB H
9C CALL a
CD
DCR M
35 MOV L,E
6B SBB L
9D ACI n
CE
STABELARYZOWANE WEDŁUG KODÓW ROZKAZÓW
0
1
2
3
4
5
6
7
8
9
A B C D E
F
LXI
STAX
INX
INR
DCR
MVI
DAD LDAX DCX
INR
DCR
MVI
0 NOP
RLC
RRC
0
B
B
B
B
B
B
B
B
B
C
C
C
1
LXI
STAX
INX
INR
DCR
MVI
DAD LDAX DCX
INR
DCR
MVI
RAL
RAR
1
D
D
D
D
D
D
D
D
D
E
E
E
2
LHI
INX
INR
DCR
MVI
DAD
DCX
INR
DCR
MVI
SHLD
DAA
LHLD
CMA 2
H
H
H
H
H
H
H
L
L
L
3
LHI
INH
INR
DCR
MVI
DAD
DCX
INR
DCR
MVI
STA
STC
LDA
CMC 3
SP
SP
M
M
M
SP
SP
A
A
A
4 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV 4
B,B
B,C
B,D
B,E
B,H
B,L
B,M
B,A
C,B
C,C
C,D
C,E
C,H
C,L
C,M
C,A
5 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV 5
D,B
D,C
D,D
D,E
D,H
D,L
D,M
D,A
E,B
E,C
E,D
E,E
E,H
E,L
E,M
E,A
6 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV 6
H,B
H,C
H,D
H,E
H,H
H,L
H,M
H,A
L,B
L,C
L,D
L,E
L,H
L,L
L,M
L,A
7 MOV MOV MOV MOV MOV MOV
MOV MOV MOV MOV MOV MOV MOV MOV MOV
HLT
7
M,B
M,C
M,D
M,E
M,H
M,L
M,A
A,B
A,C
A,D
A,E
A,H
A,L
A,M
A,A
8 ADD ADD ADD ADD ADD ADD ADD ADD ADC ADC ADC ADC ADC ADC ADC ADC 8
B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
9 SUB SUB SUB SUB SUB SUB SUB SUB SBB SBB SBB SBB SBB SBB SBB SBB 9
B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
A ANA ANA ANA ANA ANA ANA ANA ANA XRA XRA XRA XRA XRA XRA XRA XRA A B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
B ORA ORA ORA ORA ORA ORA ORA ORA CMP CMP CMP CMP CMP CMP CMP CMP B
B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
C
POP
PUSH
RST
RST
RNZ
JNZ
JMP
CNZ
ADI
RZ
RET
JZ
CZ
CALL
ACI
C
B
B
0
1
D
POP
PUSH
RST
RST
RNC
JNC
OUT
CNC
SUI
RC
JC
IN
CC
SBI
D
D
D
2
3
E
POP
PUSH
RST
RST
RPO
JPO
XTHL CPO
ANI
RPE PCHL
JPE XCHG CPE
XRI
E
H
H
4
5
F
POP
PUSH
RST
RST
RP
JP
DI
CP
ORI
RM
SPHL
JM
EI
CM
CPI
F
PSW
PSW
6
7
0
1
2
3
4
5
6
7
8
9
A B C D E
F