Instrukční soubor 8080A










Název Argumenty Kód(hexa) Provedení Period Poznámka






8-Bit instrukce přesunu










MOV A,A 7F do reg.A zkopíruj reg.A 5 K čemu je dobré obsah A přepsat obsahem A ??

A,B 78 A <- B 5

A,C 79 A <- C 5

A,D 7A A <- D 5

A,E 7B A <- E 5

A,H 7C A <- H 5

A,L 7D A <- L 5


A,(HL) 7E A <- (HL) 7 do reg.A zkopíruj bajt paměi, adresa je v HL
LDAX A,(BC) 0A A <- (BC) 7 Proč je tohle LDAX a ne MOVAX ví jen v Intelu

A,(DE) 1A A <- (DE) 7
LDA A,(adresa) 3A adresa A <- (adresa) 13
MOV B,A 47 B <- A 5

B,B 40 B <- B 5

B,C 41 B <- C 5

B,D 42 B <- D 5

B,E 43 B <- E 5

B,H 44 B <- H 5

B,L 45 B <- L 5

B,(HL) 46 B <- (HL) 7

C,A 4F C <- A 5

C,B 48 C <- B 5

C,C 49 C <- C 5

C,D 4A C <- D 5

C,E 4B C <- E 5

C,H 4C C <- H 5

C,L 4D C <- L 5

C,(HL) 4E C <- (HL) 7

D,A 57 D <- A 5

D,B 50 D <- B 5

D,C 51 D <- C 5

D,D 52 D <- D 5

D,E 53 D <- E 5

D,H 54 D <- H 5

D,L 55 D <- L 5

D,(HL) 56 D <- (HL) 7

E,A 5F E <- A 5

E,B 58 E <- B 5

E,C 59 E <- C 5

E,D 5A E <- D 5

E,E 5B E <- E 5

E,H 5C E <- H 5

E,L 5D E <- L 5

E,(HL) 5E E <- (HL) 7

H,A 67 H <- A 5

H,B 60 H <- B 5

H,C 61 H <- C 5

H,D 62 H <- D 5

H,E 63 H <- E 5

H,H 64 H <- H 5

H,L 65 H <- L 5

H,(HL) 66 H <- (HL) 7

L,A 6F L <- A 5

L,B 68 L <- B 5

L,C 69 L <- C 5

L,D 6A L <- D 5

L,E 6B L <- E 5

L,H 6C L <- H 5

L,L 6D L <- L 5

L,(HL) 6E L <- (HL) 7

(HL),A 77 (HL) <- A 7

(HL),B 70 (HL) <- B 7

(HL),C 71 (HL) <- C 7

(HL),D 72 (HL) <- D 7

(HL),E 73 (HL) <- E 7

(HL),H 74 (HL) <- H 7

(HL),L 75 (HL) <- L 7
MVI A,byte 3Ebyte A <- byte 7

B,byte 06byte B <- byte 7

C,byte 0Ebyte C <- byte 7

D,byte 16byte D <- byte 7

E,byte 1Ebyte E <- byte 7

H,byte 26byte H <- byte 7

L,byte 2Ebyte L <- byte 7

(HL),byte 36byte (HL) <-byte 10
STAX (BC),A 2 (BC) <- A 7
STAX (DE),A 12 (DE) <- A 7
STA (slovo),A 32slovo (slovo) <- A 13






16 instrukce přesunu










LXI BC,slovo 01slovo BC <- slovo 10

DE,slovo 11slovo DE <- slovo 10

HL,slovo 21slovo HL <- slovo 10

SP,slovo 31slovo SP <- slovo 10
LHLD HL,(slovo) 2Aslovo HL <- (slovo) 16
SHLD (slovo),HL 22slovo (slovo) <- HL 16
SPHL SP,HL F9 SP <- HL 5






instrukce prohazování registrů




XCHG DE,HL EB HL <-> DE 4
XTHL (SP),HL E3 H <-> (SP+1); L <-> (SP) 18






Součet










ADD A,A 87 A <- A + A 4

A,B 80 A <- A + B 4

A,C 81 A <- A + C 4

A,D 82 A <- A + D 4

A,E 83 A <- A + E 4

A,H 84 A <- A + H 4

A,L 85 A <- A + L 4

A,(HL) 86 A <- A + (HL) 7
ADI A,byte C6byte A <- A + byte 7






součet s příznakem přetečení CY










ADC A,A 8F A <- A + A + CY 4

A,B 88 A <- A + B + CY 4

A,C 89 A <- A + C + CY 4

A,D 8A A <- A + D + CY 4

A,E 8B A <- A + E + CY 4

A,H 8C A <- A + H + CY 4

A,L 8D A <- A + L + CY 4

A,(HL) 8E A <- A + (HL) + CY 7
ACI A,byte CEbyte A <- A + byte + CY 7






odčítání










SUB A 97 A <- A - A 4

B 90 A <- A - B 4

C 91 A <- A - C 4

D 92 A <- A - D 4

E 93 A <- A - E 4

H 94 A <- A - H 4

L 95 A <- A - L 4

(HL) 96 A <- A - (HL) 7
SUI byte D6byte A <- A - byte 7






odečítání s příznakem CY










SBB A 9F A <- A - A - CY 4

B 98 A <- A - B - CY 4

C 99 A <- A - C - CY 4

D 9A A <- A - D - CY 4

E 9B A <- A - E - CY 4

H 9C A <- A - H - CY 4

L 9D A <- A - L - CY 4

(HL) 9E A <- A - (HL) - CY 7
SBI byte DEbyte A <- A - byte - CY 7






16 bit součet










DAD HL,BC 9 HL <- HL + BC 10

HL,DE 19 HL <- HL + DE 10

HL,HL 29 HL <- HL + HL 10

HL,SP 39 HL <- HL + SP 10






instrukce pro řízení procesoru










DI
F3 IFF <- 0 (zakáľe přeruąení) 4
EI
FB IFF <- 1 (povolí přeruąení) 4
NOP
0 No Operation (nic nedělá, jen zdrľuje...) 4 má kód také 08, 10, 18, 28, 30, 38, záleží na výrobci
HLT
76 NOP;PC <- PC-1 7






zvyš o 1 registr










INR A 3C A <- A + 1 5

B 4 B <- B + 1 5


C 0C C <- C + 1 5


D 14 D <- D + 1 5


E 1C E <- E + 1 5


H 24 H <- H + 1 5


L 2C L <- L + 1 5


(HL) 34 (HL) <- (HL) + 1 10






sniž o 1 registr










DCR A 3D A <- A - 1 5

B 5 B <- B - 1 5


C 0D C <- C - 1 5


D 15 D <- D - 1 5


E 1D E <- E - 1 5


H 25 H <- H - 1 5


L 2D L <- L - 1 5


(HL) 35 (HL) <- (HL) - 1 10






zvyš pár registrů o 1










INX BC 3 BC <- BC + 1 5

DE 13 DE <- DE + 1 5


HL 23 HL <- HL + 1 5


SP 33 SP <- SP + 1 5







sniž pár registrů o 1










DCX BC 0B BC <- BC - 1 5


DE 1B DE <- DE - 1 5


HL 2B HL <- HL - 1 5


SP 3B SP <- SP - 1 5







Hrátky s akumulátorem a příznaky










DAA
27 dekadická korekce A 4
CMA
2F A <- NOT A 4

STC
37 CF (CY Flag) <- 1 4

CMC
3F CF (CY Flag) <- 0 4







rotace - posuny



Rotující kedluben dopadl mi na buben






RLC
7 Posun bitů A vlevo 4 pokud se přesune 1 z bitu 7 do bitu 0, pak CY=1
RRC
0F Posun bitů A vpravo 4
pokud se přesune 1 z bitu O do bitu 7, pak CY=1
RAL
17 Posun bitů A + CY vlevo 4
přistupuje k A a CY jako k jednomu 9íti bitovému slovu
RAR
1F Posun bitů A + CY vpravo 4
přistupuje k A a CY jako k jednomu 9íti bitovému slovu






logické operace










ANA A A7 A <- A AND A 4


B A0 A <- A AND B 4


C A1 A <- A AND C 4


D A2 A <- A AND D 4


E A3 A <- A AND E 4


H A4 A <- A AND H 4


L A5 A <- A AND L 4


(HL) A6 A <- A AND (HL) 7
ANI byte E6byte A <- A AND byte 7

XRA A AF A <- A XOR A 4

B A8 A <- A XOR B 4


C A9 A <- A XOR C 4


D AA A <- A XOR D 4


E AB A <- A XOR E 4


H AC A <- A XOR H 4


L AD A <- A XOR L 4


(HL) AE A <- A XOR (HL) 7
XRI byte EEbyte A <- A XOR byte 7

ORA A B7 A <- A OR A 4

B B0 A <- A OR B 4


C B1 A <- A OR C 4


D B2 A <- A OR D 4


E B3 A <- A OR E 4


H B4 A <- A OR H 4


L B5 A <- A OR L 4


(HL) B6 A <- A OR (HL) 7
ORI byte F6byte A <- A OR byte 7

CMP A BF A - A 4 porovnání A s A?Tahle instrukce se má jmenovat SET Z=1

B B8 A - B 4


C B9 A - C 4


D BA A - D 4


E BB A - E 4


H BC A - H 4


L BD A - L 4


(HL) BE A - (HL) 7
CPI slabika FEslabika A - slabika 7







skoky podmíněné i nepodmíněné










JMP adresa C3adresa PC <- adresa 10

JNZ NZ,adresa C2adresa If NZ, PC <- adresa 10

JZ Z,adresa CAadresa If Z, PC <- adresa 10

JNC NC,adresa D2adresa If NC, PC <- adresa 10

JC C,adresa DAadresa If C, PC <- adresa 10

JPO PO,adresa E2adresa If PO, PC <- adresa 10

JPE PE,adresa EAadresa If PE, PC <- adresa 10

JP P,adresa F2adresa If P, PC <- adresa 10

JM M,adresa FAadresa If M, PC <- adresa 10
PCHL (HL) E9 PC <- HL 5
CALL adresa CDadresa (SP-1) <- PCh;(SP-2) <- PCl 17 DD, ED, FD hexa provedou také CALL (závisí na výrobci)
CNZ NZ,adresa C4adresa If NZ, CALL adresa 11
tady je to složitější, když je podmínka splněna tak 17
CZ Z,adresa CCadresa If Z, CALL adresa 11
když je podmínka splněna tak 17
CNC NC,adresa D4adresa If NC, CALL adresa 11
když je podmínka splněna tak 17
CC C,adresa DCadresa If C, CALL adresa 11
tkdyž je podmínka splněna tak 17
CPO PO,adresa E4adresa If PO, CALL adresa 11
tkdyž je podmínka splněna tak 17
CPE PE,adresa ECadresa If PE, CALL adresa 11
když je podmínka splněna tak 17
CP P,adresa F4adresa If P, CALL adresa 11
když je podmínka splněna tak 17
CM M,adresa FCadresa If M, CALL adresa 11
tkdyž je podmínka splněna tak 17
RET
C9 PCl <- (SP);PCh <-(SP+1) 10
D9 provede také RET(závisí na výrobci)
RNZ NZ C0 If NZ, RET 5
tkdyž je podmínka splněna tak 11
RZ Z C8 If Z, RET 5
tkdyž je podmínka splněna tak 11
RNC NC D0 If NC, RET 5
tkdyž je podmínka splněna tak 11
RC C D8 If C, RET 5
tkdyž je podmínka splněna tak 11
RPO PO E0 If PO, RET 5
tkdyž je podmínka splněna tak 11
RPE PE E8 If PE, RET 5
tkdyž je podmínka splněna tak 11
RP P F0 If P, RET 5
tkdyž je podmínka splněna tak 11
RM M F8 If M, RET 5
tkdyž je podmínka splněna tak 11
RST 0 0H C7 CALL 0H 11

RST 1 8H CF CALL 8H 11
RST 2 10H D7 CALL 10H 11
RST 3 18H DF CALL 18H 11
RST 4 20H E7 CALL 20H 11
RST 5 28H EF CALL 28H 11
RST 6 30H F7 CALL 30H 11
RST 7 38H FF CALL 38H 11






práce se zasobníkem










PUSH BC C5 (SP-2) <- C; (SP-1) <- B; SP <- SP - 2 11

DE D5 (SP-2) <- E; (SP-1) <- D; SP <- SP - 2 11

HL E5 (SP-2) <- L; (SP-1) <- H; SP <- SP - 2 11

AF F5 (SP-2) <- F; (SP-1) <- A; SP <- SP - 2 11 F - registr příznaků
POP BC C1 B <- (SP+1); C <- (SP), SP <- SP + 2 10

DE D1 D <- (SP+1); E <- (SP); SP <- SP + 2 10

HL E1 H <- (SP+1); L <- (SP); SP <- SP + 2 10

AF F1 A <- (SP+1); F <- (SP); SP <- SP + 2 10 F - registr příznaků






instrukce pro vstup, výstup










IN A,(byte) DBbyte A <- [byte] 10
OUT (byte),A D3byte [byte] <- A 10