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)

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

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