Instrukce 8080 – přehledně v jedné tabulce

Tak si to shrňme, ano?

Operační kódInstrukcePočet byteOvlivňuje příznakyFunkce
0x00NOP1
0x01LXI B,D163B <- byte 3, C <- byte 2
0x02STAX B1(BC) <- A
0x03INX B1BC <- BC+1
0x04INR B1Z, S, P, ACB <- B+1
0x05DCR B1Z, S, P, ACB <- B-1
0x06MVI B, D82B <- byte 2
0x07RLC1CYA = A << 1; bit 0 = prev bit 7; CY = prev bit 7
0x08-
0x09DAD B1CYHL = HL + BC
0x0aLDAX B1A <- (BC)
0x0bDCX B1BC = BC-1
0x0cINR C1Z, S, P, ACC <- C+1
0x0dDCR C1Z, S, P, ACC <-C-1
0x0eMVI C,D82C <- byte 2
0x0fRRC1CYA = A >> 1; bit 7 = prev bit 0; CY = prev bit 0
0x10-
0x11LXI D,D163D <- byte 3, E <- byte 2
0x12STAX D1(DE) <- A
0x13INX D1DE <- DE + 1
0x14INR D1Z, S, P, ACD <- D+1
0x15DCR D1Z, S, P, ACD <- D-1
0x16MVI D, D82D <- byte 2
0x17RAL1CYA = A << 1; bit 0 = prev CY; CY = prev bit 7
0x18-
0x19DAD D1CYHL = HL + DE
0x1aLDAX D1A <- (DE)
0x1bDCX D1DE = DE-1
0x1cINR E1Z, S, P, ACE <-E+1
0x1dDCR E1Z, S, P, ACE <- E-1
0x1eMVI E,D82E <- byte 2
0x1fRAR1CYA = A >> 1; bit 7 = prev bit CY; CY = prev bit 0
0x20-
0x21LXI H,D163H <- byte 3, L <- byte 2
0x22SHLD adr3(adr) <-L; (adr+1)<-H
0x23INX H1HL <- HL + 1
0x24INR H1Z, S, P, ACH <- H+1
0x25DCR H1Z, S, P, ACH <- H-1
0x26MVI H,D82H <- byte 2
0x27DAA1Z,S, P, AC, CYspecial
0x28-
0x29DAD H1CYHL = HL + HL
0x2aLHLD adr3L <- (adr); H<-(adr+1)
0x2bDCX H1HL = HL-1
0x2cINR L1Z, S, P, ACL <- L+1
0x2dDCR L1Z, S, P, ACL <- L-1
0x2eMVI L, D82L <- byte 2
0x2fCMA1A <- !A
0x30-
0x31LXI SP, D163SP.hi <- byte 3, SP.lo <- byte 2
0x32STA adr3(adr) <- A
0x33INX SP1SP = SP + 1
0x34INR M1Z, S, P, AC(HL) <- (HL)+1
0x35DCR M1Z, S, P, AC(HL) <- (HL)-1
0x36MVI M,D82(HL) <- byte 2
0x37STC1CYCY = 1
0x38-
0x39DAD SP1CYHL = HL + SP
0x3aLDA adr3A <- (adr)
0x3bDCX SP1SP = SP-1
0x3cINR A1Z, S, P, ACA <- A+1
0x3dDCR A1Z, S, P, ACA <- A-1
0x3eMVI A,D82A <- byte 2
0x3fCMC1CYCY=!CY
0x40MOV B,B1B <- B
0x41MOV B,C1B <- C
0x42MOV B,D1B <- D
0x43MOV B,E1B <- E
0x44MOV B,H1B <- H
0x45MOV B,L1B <- L
0x46MOV B,M1B <- (HL)
0x47MOV B,A1B <- A
0x48MOV C,B1C <- B
0x49MOV C,C1C <- C
0x4aMOV C,D1C <- D
0x4bMOV C,E1C <- E
0x4cMOV C,H1C <- H
0x4dMOV C,L1C <- L
0x4eMOV C,M1C <- (HL)
0x4fMOV C,A1C <- A
0x50MOV D,B1D <- B
0x51MOV D,C1D <- C
0x52MOV D,D1D <- D
0x53MOV D,E1D <- E
0x54MOV D,H1D <- H
0x55MOV D,L1D <- L
0x56MOV D,M1D <- (HL)
0x57MOV D,A1D <- A
0x58MOV E,B1E <- B
0x59MOV E,C1E <- C
0x5aMOV E,D1E <- D
0x5bMOV E,E1E <- E
0x5cMOV E,H1E <- H
0x5dMOV E,L1E <- L
0x5eMOV E,M1E <- (HL)
0x5fMOV E,A1E <- A
0x60MOV H,B1H <- B
0x61MOV H,C1H <- C
0x62MOV H,D1H <- D
0x63MOV H,E1H <- E
0x64MOV H,H1H <- H
0x65MOV H,L1H <- L
0x66MOV H,M1H <- (HL)
0x67MOV H,A1H <- A
0x68MOV L,B1L <- B
0x69MOV L,C1L <- C
0x6aMOV L,D1L <- D
0x6bMOV L,E1L <- E
0x6cMOV L,H1L <- H
0x6dMOV L,L1L <- L
0x6eMOV L,M1L <- (HL)
0x6fMOV L,A1L <- A
0x70MOV M,B1(HL) <- B
0x71MOV M,C1(HL) <- C
0x72MOV M,D1(HL) <- D
0x73MOV M,E1(HL) <- E
0x74MOV M,H1(HL) <- H
0x75MOV M,L1(HL) <- L
0x76HLT1special
0x77MOV M,A1(HL) <- A
0x78MOV A,B1A <- B
0x79MOV A,C1A <- C
0x7aMOV A,D1A <- D
0x7bMOV A,E1A <- E
0x7cMOV A,H1A <- H
0x7dMOV A,L1A <- L
0x7eMOV A,M1A <- (HL)
0x7fMOV A,A1A <- A
0x80ADD B1Z, S, P, CY, ACA <- A + B
0x81ADD C1Z, S, P, CY, ACA <- A + C
0x82ADD D1Z, S, P, CY, ACA <- A + D
0x83ADD E1Z, S, P, CY, ACA <- A + E
0x84ADD H1Z, S, P, CY, ACA <- A + H
0x85ADD L1Z, S, P, CY, ACA <- A + L
0x86ADD M1Z, S, P, CY, ACA <- A + (HL)
0x87ADD A1Z, S, P, CY, ACA <- A + A
0x88ADC B1Z, S, P, CY, ACA <- A + B + CY
0x89ADC C1Z, S, P, CY, ACA <- A + C + CY
0x8aADC D1Z, S, P, CY, ACA <- A + D + CY
0x8bADC E1Z, S, P, CY, ACA <- A + E + CY
0x8cADC H1Z, S, P, CY, ACA <- A + H + CY
0x8dADC L1Z, S, P, CY, ACA <- A + L + CY
0x8eADC M1Z, S, P, CY, ACA <- A + (HL) + CY
0x8fADC A1Z, S, P, CY, ACA <- A + A + CY
0x90SUB B1Z, S, P, CY, ACA <- A - B
0x91SUB C1Z, S, P, CY, ACA <- A - C
0x92SUB D1Z, S, P, CY, ACA <- A - D
0x93SUB E1Z, S, P, CY, ACA <- A - E
0x94SUB H1Z, S, P, CY, ACA <- A - H
0x95SUB L1Z, S, P, CY, ACA <- A - L
0x96SUB M1Z, S, P, CY, ACA <- A - (HL)
0x97SUB A1Z, S, P, CY, ACA <- A - A
0x98SBB B1Z, S, P, CY, ACA <- A - B - CY
0x99SBB C1Z, S, P, CY, ACA <- A - C - CY
0x9aSBB D1Z, S, P, CY, ACA <- A - D - CY
0x9bSBB E1Z, S, P, CY, ACA <- A - E - CY
0x9cSBB H1Z, S, P, CY, ACA <- A - H - CY
0x9dSBB L1Z, S, P, CY, ACA <- A - L - CY
0x9eSBB M1Z, S, P, CY, ACA <- A - (HL) - CY
0x9fSBB A1Z, S, P, CY, ACA <- A - A - CY
0xa0ANA B1Z, S, P, CY, ACA <- A & B
0xa1ANA C1Z, S, P, CY, ACA <- A & C
0xa2ANA D1Z, S, P, CY, ACA <- A & D
0xa3ANA E1Z, S, P, CY, ACA <- A & E
0xa4ANA H1Z, S, P, CY, ACA <- A & H
0xa5ANA L1Z, S, P, CY, ACA <- A & L
0xa6ANA M1Z, S, P, CY, ACA <- A & (HL)
0xa7ANA A1Z, S, P, CY, ACA <- A & A
0xa8XRA B1Z, S, P, CY, ACA <- A ^ B
0xa9XRA C1Z, S, P, CY, ACA <- A ^ C
0xaaXRA D1Z, S, P, CY, ACA <- A ^ D
0xabXRA E1Z, S, P, CY, ACA <- A ^ E
0xacXRA H1Z, S, P, CY, ACA <- A ^ H
0xadXRA L1Z, S, P, CY, ACA <- A ^ L
0xaeXRA M1Z, S, P, CY, ACA <- A ^ (HL)
0xafXRA A1Z, S, P, CY, ACA <- A ^ A
0xb0ORA B1Z, S, P, CY, ACA <- A | B
0xb1ORA C1Z, S, P, CY, ACA <- A | C
0xb2ORA D1Z, S, P, CY, ACA <- A | D
0xb3ORA E1Z, S, P, CY, ACA <- A | E
0xb4ORA H1Z, S, P, CY, ACA <- A | H
0xb5ORA L1Z, S, P, CY, ACA <- A | L
0xb6ORA M1Z, S, P, CY, ACA <- A | (HL)
0xb7ORA A1Z, S, P, CY, ACA <- A | A
0xb8CMP B1Z, S, P, CY, ACA - B
0xb9CMP C1Z, S, P, CY, ACA - C
0xbaCMP D1Z, S, P, CY, ACA - D
0xbbCMP E1Z, S, P, CY, ACA - E
0xbcCMP H1Z, S, P, CY, ACA - H
0xbdCMP L1Z, S, P, CY, ACA - L
0xbeCMP M1Z, S, P, CY, ACA - (HL)
0xbfCMP A1Z, S, P, CY, ACA - A
0xc0RNZ1if NZ, RET
0xc1POP B1C <- (SP); B <- (SP+1); SP <- SP+2
0xc2JNZ adr3if NZ, PC <- adr
0xc3JMP adr3PC <= adr
0xc4CNZ adr3if NZ, CALL adr
0xc5PUSH B1(SP-2)<-C; (SP-1)<-B; SP <- SP - 2
0xc6ADI D82Z, S, P, CY, ACA <- A + byte
0xc7RST 01CALL $0
0xc8RZ1if Z, RET
0xc9RET1PC.lo <- (SP); PC.hi<-(SP+1); SP <- SP+2
0xcaJZ adr3if Z, PC <- adr
0xcb-
0xccCZ adr3if Z, CALL adr
0xcdCALL adr3(SP-1)<-PC.hi;(SP-2)<-PC.lo;SP<-SP+2;PC=adr
0xceACI D82Z, S, P, CY, ACA <- A + data + CY
0xcfRST 11CALL $8
0xd0RNC1if NCY, RET
0xd1POP D1E <- (SP); D <- (SP+1); SP <- SP+2
0xd2JNC adr3if NCY, PC<-adr
0xd3OUT D82special
0xd4CNC adr3if NCY, CALL adr
0xd5PUSH D1(SP-2)<-E; (SP-1)<-D; SP <- SP - 2
0xd6SUI D82Z, S, P, CY, ACA <- A - data
0xd7RST 21CALL $10
0xd8RC1if CY, RET
0xd9-
0xdaJC adr3if CY, PC<-adr
0xdbIN D82special
0xdcCC adr3if CY, CALL adr
0xdd-
0xdeSBI D82Z, S, P, CY, ACA <- A - data - CY
0xdfRST 31CALL $18
0xe0RPO1if PO, RET
0xe1POP H1L <- (SP); H <- (SP+1); SP <- SP+2
0xe2JPO adr3if PO, PC <- adr
0xe3XTHL1L <-> (SP); H <-> (SP+1)
0xe4CPO adr3if PO, CALL adr
0xe5PUSH H1(SP-2)<-L; (SP-1)<-H; SP <- SP - 2
0xe6ANI D82Z, S, P, CY, ACA <- A & data
0xe7RST 41CALL $20
0xe8RPE1if PE, RET
0xe9PCHL1PC.hi <- H; PC.lo <- L
0xeaJPE adr3if PE, PC <- adr
0xebXCHG1H <-> D; L <-> E
0xecCPE adr3if PE, CALL adr
0xed-
0xeeXRI D82Z, S, P, CY, ACA <- A ^ data
0xefRST 51CALL $28
0xf0RP1if P, RET
0xf1POP PSW1Z, S, P, CY, ACflags <- (SP); A <- (SP+1); SP <- SP+2
0xf2JP adr3if P, PC <- adr
0xf3DI1special
0xf4CP adr3if P, PC <- adr
0xf5PUSH PSW1(SP-2)<-flags; (SP-1)<-A; SP <- SP - 2
0xf6ORI D82Z, S, P, CY, ACA <- A | data
0xf7RST 61CALL $30
0xf8RM1if M, RET
0xf9SPHL1SP=HL
0xfaJM adr3if M, PC <- adr
0xfbEI1special
0xfcCM adr3if M, CALL adr
0xfd-
0xfeCPI D82Z, S, P, CY, ACA - data
0xffRST 71CALL $38

Líbil se vám článek? Podpořte autora na Patreonu
Příspěvek byl publikován v rubrice Assembler. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

3 komentáře u Instrukce 8080 – přehledně v jedné tabulce

  1. Roman Bórik napsal:

    Našiel som v tabuľke niekoľko preklepov:

    0x09 DAD B – Ovplyvňuje príznaky: CY
    0x19 DAD D – Ovplyvňuje príznaky: CY
    0x1F RAR – Funkcia: bit 7 = prev CY
    0x20 RIM – Funkcia: special (iba 8085)
    0x26 MVI H,D8 – Funkcia: H <- byte 2
    0x27 DAA – Ovplyvňuje príznaky: Z, S, P, CY, AC
    0x29 DAD H – Ovplyvňuje príznaky: CY, Funkcia: HL = HL + HL
    0x30 SIM – Funkcia: special (iba 8085)
    0x39 DAD SP – Ovplyvňuje príznaky: CY
    0x77 MOV M,A – Funkcia: (HL) <- A
    0x92 SUB D – Funkcia: A <- A – D
    0x94 SUB H – Funkcia: A <- A – H
    0x96 SUB M – Funkcia: A <- A – (HL)
    0xc1 POP B – Funkcia: C <- (SP); B <- (SP+1); SP <- SP+2
    0xc5 PUSH B – Funkcia: (SP-2) <- C; (SP-1) <- B; SP <- SP-2
    0xc9 RET – Funkcia: PC.lo <- (SP); PC.hi <- (SP+1); SP <- SP+2
    0xd1 POP D – Funkcia: E <- (SP); D <- (SP+1); SP <- SP+2
    0xd5 PUSH D – Funkcia: (SP-2) <- E; (SP-1) <- D; SP <- SP-2
    0xe1 POP H – Funkcia: L <- (SP); H <- (SP+1); SP <- SP+2
    0xe5 PUSH H – Funkcia: (SP-2) <- L; (SP-1) <- H; SP <- SP-2
    0xf1 POP PSW – Funkcia: flags <- (SP); A <- (SP+1); SP <- SP+2
    0xf2 JP adr – Funkcia: if P, PC <- adr
    0xf5 PUSH PSW – Funkcia: (SP-2) <- A; (SP-1) <- flags; SP <- SP-2

  2. Roman Bórik napsal:

    Predsa ešte niečo:

    0xc9 RET – Funkcia: PC.lo <- (SP); PC.hi <- (SP+1); SP <- SP+2
    0xf1 POP PSW – Ovplyvňuje príznaky: Z, S, P, CY, AC, Funkcia: flags <- (SP); A <- (SP+1); SP <- SP+2
    0xf5 PUSH PSW – Funkcia: (SP-2) <- flags; (SP-1) <- A; SP <- SP-2

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *