Deeds - D8080 Processor
(Instruction Set)
D8080 Processor Programming Model
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
|
| MOV r, r’ |
r ¬ r’ |
• • • • • |
01 r r’ |
1 |
1 |
4 |
r,
r’ Reg |
||
| MVI r, n |
r ¬ n |
• • • • • |
00 r 110 |
2 |
2 |
7 |
|||
| MOV r,M |
r ¬ (HL) |
• • • • • |
01 r 110 |
1 |
2 |
7 |
|||
| MOV M, r |
(HL) ¬ r |
• • • • • |
01 110 r |
1 |
2 |
7 |
|||
| MVI M, n |
(HL) ¬ n |
• • • • • |
00 110 110 |
36 |
2 |
3 |
10 |
||
| LDAX B |
A ¬ (BC) |
• • • • • |
00 001 010 |
0A |
1 |
2 |
7 |
||
| LDAX D |
A ¬ (DE) |
• • • • • |
00 011 010 |
1A |
1 |
2 |
7 |
||
| LDA nn |
A ¬ (nn) |
• • • • • |
00 111 010 |
3A |
3 |
4 |
13 |
||
| STAX B |
(BC) ¬ A |
• • • • • |
00 000 010 |
02 |
1 |
2 |
7 |
||
| STAX D |
(DE) ¬ A |
• • • • • |
00 010 010 |
12 |
1 |
2 |
7 |
||
| STA nn |
(nn) ¬ A |
• • • • • |
00 110 010 |
32 |
3 |
4 |
13 |
||
| Notes: |
r, r’ means any of the registers A, B, C, D, E, H, L. |
||||||||
| Flag Notation: |
• = flag is not affected. |
||||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
|
| LXI B, nn |
BC ¬ nn |
• • • • • |
00 000 001 |
01 | 3 |
3 |
10 |
|
|
| LXI D, nn |
DE ¬ nn |
• • • • • |
00 010 001 |
11 | 3 |
3 |
10 |
||
| LXI H, nn |
HL ¬ nn |
• • • • • |
00 100 001 |
21 | 3 |
3 |
10 |
||
| LXI SP, nn |
SP ¬ nn |
• • • • • |
00 110 001 |
31 | 3 |
3 |
10 |
||
| LHLD nn |
L ¬ (nn) |
• • • • • |
00 101 010 |
2A |
3 |
5 |
16 |
||
| SHLD nn |
(nn) ¬ L |
• • • • • |
00 100 010 |
22 |
3 |
5 |
16 |
||
| SPHL |
SP ¬ HL |
• • • • • |
11 111 001 |
F9 |
1 |
1 |
6 |
||
| XCHG |
DE « HL |
• • • • • |
11 101 011 |
EB |
1 |
1 |
4 |
||
| XTHL |
H « (SP+1) |
• • • • • |
11 100 011 |
E3 |
1 |
5 |
19 |
||
| PUSH B |
SP ¬ SP - 1 |
• • • • • |
11 000 101 |
C5 | 1 |
3 |
11 | ||
| PUSH D |
SP ¬ SP - 1 |
• • • • • |
11 010 101 |
D5 | 1 |
3 |
11 | ||
| PUSH H |
SP ¬ SP - 1 |
• • • • • |
11 100 101 |
E5 | 1 |
3 |
11 |
||
| PUSH PSW |
SP ¬ SP - 1 |
• • • • • |
11 110 101 |
F5 | 1 |
3 |
11 | ||
| POP B |
C ¬ (SP) |
• • • • • |
11 000 001 |
C1 | 1 |
3 |
10 | ||
| POP D |
E ¬ (SP) |
• • • • • |
11 010 001 |
D1 | 1 |
3 |
10 |
||
| POP H |
L ¬ (SP) |
• • • • • |
11 100 001 |
E1 | 1 |
3 |
10 | ||
| POP PSW |
Flags ¬ (SP) |
• • • • • |
11 110 001 |
F1 | 1 |
3 |
10 | ||
| Flag Notation: |
• = flag is not affected. |
||||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
| ADD r |
A ¬ A + r |
↕ ↕ ↕ ↕ ↕ |
10 000 r |
1 |
1 |
4 |
r Reg |
|
| ADI n |
A ¬ A + n |
↕ ↕ ↕ ↕ ↕ |
11 000 110 |
2 |
2 |
7 |
||
| ADD M |
A ¬ A + (HL) |
↕ ↕ ↕ ↕ ↕ |
10 000 110 |
86 | 1 |
2 |
7 |
|
ADC r |
A ¬ A + r + CY |
↕ ↕ ↕ ↕ ↕ |
10 001 r |
1 |
1 |
4 |
||
ACI n |
A ¬ A + n + CY |
↕ ↕ ↕ ↕ ↕ |
11 001 110 |
2 |
2 |
7 |
||
ADC M |
A ¬ A + (HL) + CY |
↕ ↕ ↕ ↕ ↕ |
10 001 110 |
8E | 1 |
2 |
7 |
|
| SUB r |
A ¬ A - r |
↕ ↕ ↕ ↕ ↕ |
10 010 r |
1 |
1 |
4 |
||
| SUI n |
A ¬ A - n |
↕ ↕ ↕ ↕ ↕ |
11 010 110 |
2 |
2 |
7 |
||
| SUB M |
A ¬ A - (HL) |
↕ ↕ ↕ ↕ ↕ |
10 010 110 |
96 | 1 |
2 |
7 |
|
SBB r |
A ¬ A - r - CY |
↕ ↕ ↕ ↕ ↕ |
10 011 r |
1 |
1 |
4 |
||
SBI n |
A ¬ A - n - CY |
↕ ↕ ↕ ↕ ↕ |
11 011 110 |
2 |
2 |
7 |
||
SBB M |
A ¬ A - (HL) - CY |
↕ ↕ ↕ ↕ ↕ |
10 011 110 |
9E | 1 |
2 |
7 |
|
| CMP r |
A - r |
↕ ↕ ↕ ↕ ↕ |
10 111 r |
1 |
1 |
4 |
||
| CPI n |
A - n |
↕ ↕ ↕ ↕ ↕ |
11 111 110 |
2 |
2 |
7 |
||
| CMP M |
A - (HL) |
↕ ↕ ↕ ↕ ↕ |
10 111 110 |
BE | 1 |
2 |
7 |
|
ANA r |
A ¬ A and r |
↕ ↕ • ↕ 0 |
10 100 r |
1 |
1 |
4 |
||
ANI n |
A ¬ A and n |
↕ ↕ • ↕ 0 |
11 100 110 |
2 |
2 |
7 |
||
ANA M |
A ¬ A and (HL) |
↕ ↕ • ↕ 0 |
10 100 110 |
A6 | 1 |
2 |
7 |
|
ORA r |
A ¬ A or r |
↕ ↕ • ↕ 0 |
10 110 r |
1 |
1 |
4 |
||
ORI n |
A ¬ A or n |
↕ ↕ • ↕ 0 |
11 110 110 |
2 |
2 |
7 |
||
ORA M |
A ¬ A or (HL) |
↕ ↕ • ↕ 0 |
10 110 110 |
B6 | 1 |
2 |
7 |
|
XRA r |
A ¬ A xor r |
↕ ↕ • ↕ 0 |
10 101 r |
1 |
1 |
4 |
||
XRI n |
A ¬ A xor n |
↕ ↕ • ↕ 0 |
11 101 110 |
2 |
2 |
7 |
||
XRA M |
A ¬ A xor (HL) |
↕ ↕ • ↕ 0 |
10 101 110 |
A6 | 1 |
2 |
7 |
|
| INR r |
r ¬ r + 1 |
↕ ↕ ↕ ↕ • |
00 r 100 |
1 |
1 |
4 |
||
| INR M |
(HL) ¬ (HL) + 1 |
↕ ↕ ↕ ↕ • |
00 110 100 |
34 | 1 |
3 |
11 |
|
| DCR r |
r ¬ r - 1 |
↕ ↕ ↕ ↕ • |
00 r 101 |
1 |
1 |
4 |
||
| DCR M |
(HL) ¬ (HL) - 1 |
↕ ↕ ↕ ↕ • |
00 110 101 |
35 | 1 |
3 |
11 |
|
| DAA | Converts Accumulator contents into packed BCD, following add with packed BCD operands |
↕ ↕ ↕ ↕ ↕ | 00 100 111 |
27 |
1 |
1 |
4 |
|
| CMA |
_ |
• • • • • |
00 101 111 |
2F |
1 |
1 |
4 |
One’s complement. |
| Notes: |
r means any of the registers A, B, C, D, E, H, L. |
|||||||
| Flag Notation: |
• = flag is not affected, 0 = flag is reset, 1 = flag is
set, |
|||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
| DAD B |
HL ¬ HL + BC |
• • • • ↕1 |
00 001 001 |
09 | 1 |
3 |
11 |
|
| DAD D |
HL ¬ HL + DE |
• • • • ↕1 | 00 011 001 |
19 | 1 |
3 |
11 | |
| DAD H |
HL ¬ HL + HL |
• • • • ↕1 | 00 101 001 |
29 | 1 |
3 |
11 | |
| DAD SP |
HL ¬ HL + SP |
• • • • ↕1 |
00 111 001 |
39 | 1 |
3 |
11 | |
| INX B |
BC ¬ BC + 1 |
• • • • • |
00 000 011 |
03 | 1 |
1 |
6 |
|
| INX D |
DE ¬ DE + 1 |
• • • • • |
00 010 011 |
13 | 1 |
1 |
6 |
|
| INX H |
HL ¬ HL + 1 |
• • • • • |
00 100 011 |
23 | 1 |
1 |
6 |
|
| INX SP |
SP ¬ SP + 1 |
• • • • • |
00 110 011 |
33 | 1 |
1 |
6 |
|
| DCX B |
BC ¬ BC - 1 |
• • • • • |
00 001 011 |
0B | 1 |
1 |
6 |
|
| DCX D |
DE ¬ DE - 1 |
• • • • • |
00 011 011 |
1B | 1 |
1 |
6 |
|
| DCX H |
HL ¬ HL - 1 |
• • • • • |
00 101 011 |
2B | 1 |
1 |
6 |
|
| DCX SP |
SP ¬ SP - 1 |
• • • • • |
00 111 011 |
3B | 1 |
1 |
6 |
|
| Notes: |
1 Indicates the flag is affected
by the 16 bit result of the operation. |
|||||||
| Flag Notation: |
• = flag is not affected, 0 = flag is reset, 1 = flag is
set, |
|||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
|
|
___ |
• • • • ↕ |
00 111 111 |
3F |
1 |
1 |
4 |
Complement |
| STC |
CY ¬ 1 |
• • • • 1 |
00 110 111 |
37 |
1 |
1 |
4 |
|
| NOP |
No Operation |
• • • • • |
00 000 000 |
00 |
1 |
1 |
4 |
|
| HLT |
CPU halted |
• • • • • |
01 110 110 |
76 |
1 |
1 |
4 |
|
| DI1 |
IFF ¬ 0 |
• • • • • |
11 110 011 |
F3 |
1 |
1 |
4 |
|
| EI1 |
IFF ¬ 1 |
• • • • • |
11 111 011 |
FB |
1 |
1 |
4 |
|
| Notes: |
1 No interrupts are issued directly after a DI or EI. |
|||||||
| Flag Notation: |
• = flag is not affected, 0 = flag is reset, 1 = flag is set |
|||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
| JMP nn |
PC ¬ nn |
• • • • • |
11 000 011 |
C3 |
3 |
3 |
10 |
|
| JNZ nn |
if NZ is true, |
• • • • • |
11 000 010 |
3 |
3 |
10 |
||
JZ nn |
if Z is true, |
• • • • • |
11 001 010 |
3 |
3 |
10 |
||
JNC nn |
if NC is true, |
• • • • • |
11 010 010 |
3 |
3 |
10 |
||
JC nn |
if C is true, |
• • • • • |
11 011 010 |
3 |
3 |
10 |
||
JPO nn |
if PO is true, |
• • • • • |
11 100 010 |
3 |
3 |
10 |
||
JPE nn |
if PE is true, |
• • • • • |
11 101 010 |
3 |
3 |
10 |
||
JP nn |
if P is true, |
• • • • • |
11 110 010 |
3 |
3 |
10 |
||
JM nn |
if M is true, |
• • • • • |
11 111 010 |
3 |
3 |
10 |
||
| PCHL |
PC ¬ HL |
• • • • • |
11 101 001 |
E9 |
1 |
1 |
4 |
|
| Flag Notation: |
• = flag is not affected. |
|||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
| CALL nn |
SP ¬ SP - 1 |
• • • • • |
11 001 101 |
CD |
3 |
5 |
17 |
|
| CNZ nn |
if NZ is true, |
• • • • • |
11 000 100 |
C4 | 3 |
3 |
10 |
if NZ is false |
CZ nn |
if Z is true, |
• • • • • |
11 001 100 |
CC | 3 |
3 |
10 |
if Z is false if Z is true |
CNC nn |
if NC is true, |
• • • • • |
11 010 100 |
D4 | 3 |
3 |
10 |
if NC is false if NC is true |
CC nn |
if Z is true, |
• • • • • |
11 011 100 |
D8 | 3 |
3 |
10 |
if C is false if C is true |
CPO nn |
if PO is true, |
• • • • • |
11 100 100 |
E4 | 3 |
3 |
10 |
if PO is false if PO is true |
CPE nn |
if PE is true, |
• • • • • |
11 101 100 |
EC | 3 |
3 |
10 |
if PE is false if PE is true |
CP nn |
if P is true, |
• • • • • |
11 110 100 |
F4 | 3 |
3 |
10 |
if P is false if P is true |
CM nn |
if M is true, |
• • • • • |
11 111 100 |
FC | 3 |
3 |
10 |
if M is false if M is true |
| RET |
PCL ¬
(SP) |
• • • • • |
11 001 001 |
C9 |
1 |
3 |
10 |
|
| RNZ |
if NZ is true, |
• • • • • |
11 000 000 |
C0 | 1 |
1 |
5 |
if NZ is false |
| RZ |
if Z is true, |
• • • • • |
11 001 000 |
C8 | 1 |
1 |
5 |
if Z is false |
| RNC |
if NC is true, |
• • • • • |
11 010 000 |
D0 | 1 |
1 |
5 |
if NC is false |
| RC |
if C is true, |
• • • • • |
11 011 000 |
D8 | 1 |
1 |
5 |
if C is false |
| RPO |
if PO is true, |
• • • • • |
11 100 000 |
E0 | 1 |
1 |
5 |
if PO is false |
| RPE |
if PE is true, |
• • • • • |
11 101 000 |
E8 | 1 |
1 |
5 |
if PE is false |
| RP |
if P is true, |
• • • • • |
11 110 000 |
F0 | 1 |
1 |
5 |
if P is false |
| RM |
if M is true, |
• • • • • |
11 111 000 |
F8 | 1 |
1 |
5 |
if M is false |
| RST i |
SP ¬ SP - 1 |
• • • • • |
11 t 111 |
1 |
3 |
11 |
_i_ _t_ __p__ |
|
| Flag Notation: |
• = flag is not affected. |
|||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
| RLC |
|
• • • • ↕ |
00 000 111 |
07 |
1 |
1 |
4 |
|
| RAL |
|
• • • • ↕ |
00 010 111 |
17 |
1 |
1 |
4 |
|
| RRC |
|
• • • • ↕ |
00 001 111 |
0F |
1 |
1 |
4 |
|
| RAR |
|
• • • • ↕ |
00 011 111 |
1F |
1 |
1 |
4 |
|
| Notes: |
CY means the carry flip-flop. |
|||||||
| Flag Notation: |
• = flag is not affected, 0 = flag is reset, 1 = flag is
set, |
|||||||
| Mnemonic |
Symbolic |
Flags |
Opcode |
Hex |
Bytes |
M |
Clock |
Comments |
| IN n |
A ¬ (n) |
• • • • • |
11 011 011 |
DB |
2 |
3 |
11 |
|
| OUT n |
(n) ¬ A |
• • • • • |
11 010 011 |
D3 |
2 |
3 |
11 |
|
| Flag Notation: |
• = flag is not affected, 0 = flag is reset, 1 = flag is
set, |
|||||||