8080 8- , 256.
6 .
, ;
.
.
, , Ȕ, Ȕ, Ŕ, Ȕ, , .
, .
, , , .
. 1.6, . 1.7. . 1.6 : , ; ; .
1.6
8080
F | |||||||
MOV r1,r2 | (r1)(r2) | MOVe Register to Regist | 01DDDSSS | ||||
MOV M,r | M(HL)(r) | MOVe Register to Memory | 01110SSS | ||||
MOV r,M | (r)M(HL) | MOVe Memory to Register | 01DDD110 | ||||
MVI r,d8 | (r)d8 | MOVe Immediate Register | 00DDD110 | ||||
MVI M,d8 | M(HL)d8 | MOVe Immediate Memory | |||||
STA adr | M(adr)(A) | STore A direct | |||||
LDA adr | (A)M(adr) | LoaD A direct | |||||
STAX B | M(BC)(A) | STore A indirect | |||||
STAX D | M(DE)(A) | STore A indirect | |||||
LDAX B | (A)M(BC) | LoaD A indirect | |||||
LDAX D | (A)M(DE) | LoaD A indirect | |||||
LXI B,d16 | (BC)d16 | Load Immediate Register pair B&C | |||||
LXI D,d16 | (DE)d16 | Load Immediate register pair D&E | |||||
LXI H,d16 | (HL)d16 | Load Immediate register pair H&L | |||||
LXI SP,d16 | (SP)d16 | Load Immediate stack pointer | |||||
SHLD adr | M(adr)(L) M(adr+1)(H) | Store H&L Direct | |||||
LHLD adr | (L)M(adr) (H)M(adr+1) | Load H&L Direct | |||||
XCHG | (HL)(DE) | eXCHanGe H&L, D&E | |||||
PCHL | (PC)(HL) | H&L to Programm Counter | |||||
JMP adr | (PC)adr | JuMP unconditional | |||||
JNZ adr | JMP if Z=0 | Jump on No Zero | |||||
JZ adr | JMP if Z=1 | Jump on Zero | |||||
JNC adr | JMP if CY=0 | Jump on No Carry | |||||
JC adr | JMP if CY=1 | Jump on Carry | |||||
JPO adr | JMP if P=0 | Jump on Parity Odd | |||||
JPE adr | JMP if P=1 | Jump on Parity Even | |||||
JP adr | JMP if S=0 | Jump on Positive | |||||
JM adr | JMP if S=1 | Jump on Minus | |||||
CALL adr | stack(PC) (PC)adr | CALL unconditional | |||||
CNZ adr | CALL if Z=0 | Call on No Zero | |||||
CZ adr | CALL if Z=1 | Call on Zero | |||||
CNC adr | CALL if CY=0 | Call on No Carry | |||||
CC adr | CALL if CY=1 | Call on Carry | |||||
CPO adr | CALL if P=0 | Call on Parity Odd | |||||
CPE adr | CALL if P=1 | Call on Parity Even | |||||
CP adr | CALL if S=0 | Call on Positive | |||||
CM adr | CALL if S=1 | Call on Minus | |||||
RST N | stack(PC) (PC)N*8 | ReSTart | 11nnn111 | ||||
RET | (PC)stack | RETurn | |||||
RNZ | RET if Z=0 | Return on No Zero | |||||
RZ | RET if Z=1 | Return on Zero | |||||
RNC | RET if CY=0 | Return on No Carry | |||||
RC | RET if CY=1 | Return on Carry | |||||
RPO | RET if P=0 | Return on Parity Odd | |||||
RPE | RET if P=1 | Return on Parity Even | |||||
RP | RET if S=0 | Return on Positive | |||||
RM | RET if S=1 | Return on Minus | |||||
, | |||||||
ADD r | (A)(A)+(r) | + | ADD Register to A | 10000SSS | |||
ADD M | (A)(A)+M(HL) | + | ADD Memory to A | ||||
ADI d8 | (A)(A)+d8 | + | ADd Immediate to A | ||||
ADC r | (A)(A)+(r)+ (CY) | + | ADd Register to A with Carry | 10001SSS | |||
ADC M | A)(A)+M(HL)+(CY) | + | ADd Memory to A with Carry | ||||
ACI d8 | (A)(A)+d8+ (CY) | + | Add Immediate to A with Carry | ||||
INR r | (r)(r)+1 | CY | INcRement Register | 00DDD100 | |||
INR M | M(HL) M(HL)+1 | CY | INcRement Memory | ||||
INX B | (BC)(BC)+1 | INcrement register pair B&C | |||||
INX D | (DE)(DE)+1 | INcrement register pair D&E | |||||
INX H | (HL)(HL)+1 | INcrement register pair H&L | |||||
DAD B | (HL)(HL)+ (BC) | CY | Double register ADd. Add B&C to H&L | ||||
DAD D | (HL)(HL)+ (DE) | CY | Double register ADd. Add D&E to H&L | ||||
DAD H | (HL)(HL)+ (HL) | CY | Double register ADd. Add H&L to H&L | ||||
DAD SP | (HL)(HL)+ (SP) | CY | Double register ADd. Add SP to H&L | ||||
SUB r | (A)(A)(r) | + | SUBtract Register from A | 10010SSS | |||
SUB M | (A)(A)M(HL) | + | SUBtract Memory from A | ||||
SUI d8 | (A)(A)d8 | + | SUbtract Immediate from A | ||||
SBB r | (A)(A)(r)(CY) | + | SUbtract Register from A with borrow | 10011SSS | |||
SBB M | (A)(A)M(HL) (CY) | + | Subtract Memory from A with borrow | ||||
SBI d8 | (A)(A)d8(CY) | + | Subtract Immediate from A with Borrow | ||||
DCR r | (r)(r)1 | CY | DeCrement Register | 00DDD101 | |||
DCR M | M(HL) M(HL)1 | CY | DeCrement Memory | ||||
DCX B | (BC)(BC)1 | DeCrement register pair B&C | |||||
DCX D | (DE)(DE)1 | DeCrement register pair D&E | |||||
DCX H | (HL)(HL)1 | DeCrement register pair H&L | |||||
ANA r | (A)(A)&(r) | + | ANd Register with A | 10100SSS | |||
ANA M | (A) (A)&M(HL) | + | ANd Memory with A | ||||
ANI d8 | (A)(A)&d8 | + | ANd Immediate with A | ||||
ORA r | (A)(A)Ú(r) | + | OR Register with A | 10110SSS | |||
ORA M | (A) (A)ÚM(HL) | + | OR Memory with A | ||||
ORI d8 | (A)(A)Úd8 | + | OR Immediate with A | ||||
XRA r | (A)(A)Å(r) | + | eXclusive or Register with A | 10101SSS | |||
XRA M | (A)(A)ÅM(HL) | + | eXclusive or Memory with A | ||||
XRI d8 | (A)(A)Åd8 | + | eXclusive or Immediate with A | ||||
CMP r | (F)(A(r) | + | CoMPare Register with A | 00DDD101 | |||
CMP M | (F)(A)M | + | CoMPare Memory with A | ||||
CPI d8 | (F)(A)d8 | + | ComPare Immediate with A | ||||
RAR | CY | Rotate A Right through carry | |||||
RAL | CY | Rotate A Left through carry | |||||
RRC | CY | Rotate A Right into the Carry | |||||
RLC | CY | Rotate A Left into the Carry | |||||
DAA | + | Decimal Adjust A | |||||
CMA | (A)() | CoMplement A | |||||
STC | (CY)1 | CY | SeT Carry | ||||
CMC | (CY)() | CY | CoMplement Carry | ||||
SPHL | (SP)(HL) | H&L to Stack Pointer | |||||
PUSH B | stack(BC) | PUSH register pair B&C on stack | |||||
PUSH D | stack(DE) | PUSH register pair D&E on stack | |||||
PUSH H | stack(HL) | PUSH register pair H&L on stack | |||||
PUSH PSW | stack(A)&(F) | PUSH A&F on stack | |||||
POP B | (BC)stack | POP register pair B&C off stack | |||||
POP D | (DE)stack | POP register pair D&E off stack | |||||
POP H | (HL)stack | POP register pair H&L off stack | |||||
POP PSW | (A)&(F)stack | POP A&F off stack | |||||
XTHL | (HL)stack | eXchange H&L, Top of stack | |||||
, | |||||||
IN port | ABport (A)DB | INput | |||||
OUT port | ABport DB(A) | OUTput | |||||
DI | Disable Interrupts | ||||||
EI | Enable Interrupts | ||||||
HLT | HaLT | ||||||
NOP | No-OPeration |
|
|
|
|
|
|
1.7
. | |
r,r1,r2 | 8 : A,B,C,D,E,H,L |
SSS | (.1) |
DDD | (.1); |
() | . ,(A) A. |
M() | , . , M(HL) , HL. |
d8,d16 | 8- 16- , |
adr | 16- |
port | 8- - |
PC | - (Programm Counter) |
SP | - (Stack Pointer) |
nnn | N |
AB | (Adress Bus) |
DB | (Data Bus) |
F | |
+ | |
+CY | CY |
CY | CY |
( ) | |
, . , .
:
( ) ( );
;
, .
:
;
.
, 8080. .
MOV r1,r2, r1 , r2 . .
1.21
0800 78 MOV A,B;
0801 4C MOV C,H; H C
0802 55 MOV D,L; L D
5- . .
|
|
MOV r,M MOV M,r . M , HL.
1.22
0800 56 MOV D,M; M D
0801 71 MOV M,C; C M
, 7- . . , , , M HL.
. , . :
adr LDA adr STA adr ;
BC DE LDAX B, LDAX D STAX B, STAX D .
1.23.
0800 3A 00 0B LDA 0B00h; 0B00 -; A
0803 32 10 0B STA 0B10h; A 0B10
13- . , .
1.24.
0800 1A LDAX D; M(DE)
;
0801 02 STAX B; ;M(BC)
. 7 .
- MVI r,d8 MVI M,d8 . d8, M HL.
1.25.
0800 0E 45 MVI B,45h; 45 B
0802 36 6B MVI M,6Bh; 6B
;M(HL)
LHLD adr SHLD adr . HL, adr. , adr+1.
1.26.
0800 2A 00 0B LHLD 0B00h;
; HL : M(0B00)(L),
; M(0B01)(H)
0803 22 10 0B SHLD 0B10h;
; HL: M(0B00)(L),
; M(0B01)(H)
16 , . , 36 6.7:
1.27
LDA 0B00; 13
MOV L,A; 5
LDA 0B01; 13
MOV H,A; 5
, , DE HL HCHG.
, 16- SP LXI B,d16; LXI D,d16; LXI H,d16; LXI SP,d16. d16 , .
1.28.
0800 01 00 00 LXI B,0000h; 0 . BC
0803 21 97 19 LXI H,1997h; 1997
; HL: (H)19, (L)97.