You are on page 1of 6

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
w – warunek skoku
D   0  0
Uwagi:
E ● ● 1 ● ● (1) cykle a/b: b cykli gdy występuje
odwołanie do pamięci, a – w przeciwnym
N ● ● ● ● ●
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)
2. Lista rozkazów
SKRÓT 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
Jw 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
Cw 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
Rw 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) ←pH N 11 p=B, D, H
M(SP–2) ←pL lub PSW
SP←SP–2
POP p 1 pL←M(SP) N/A 10 p=B, D, H
pH←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
B B B B B B
RLC
B B B C C C
RRC 0
LXI STAX INX INR DCR MVI DAD LDAX DCX INR DCR MVI
1 D D D D D D
RAL
D D D E E E
RAR 1
LHI INX INR DCR MVI DAD DCX INR DCR MVI
2 H
SHLD
H H H H
DAA
H
LHLD
H L L L
CMA 2
LHI INH INR DCR MVI DAD DCX INR DCR MVI
3 SP
STA
SP M M M
STC
SP
LDA
SP A A A
CMC 3
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 4
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 5
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 6
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
7 M,B M,C M,D M,E M,H M,L
HLT
M,A A,B A,C A,D A,E A,H A,L A,M A,A 7
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 8
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 9
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 A
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 B
POP PUSH RST RST
C RNZ
B
JNZ JMP CNZ
B
ADI
0
RZ RET JZ CZ CALL ACI
1 C
POP PUSH RST RST
D RNC
D
JNC OUT CNC
D
SUI
2
RC JC IN CC SBI
3 D
POP PUSH RST RST
E RPO
H
JPO XTHL CPO
H
ANI
4
RPE PCHL JPE XCHG CPE XRI
5 E
POP PUSH RST RST
F RP
PSW
JP DI CP
PSW
ORI
6
RM SPHL JM EI CM CPI
7 F
0 1 2 3 4 5 6 7 8 9 A B C D E F

You might also like