Summary of 8080 Instructions ------- -- ---- ------------ Abbreviations used in this Summary: R Any of the 8-Bit registers A,B,C,D,E,H,L. data Any 8-bit or 16-bit value. PC Program Counter. SP Stack Pointer. RM Register A,B,C,D,E,H,L or memory M pointed by HL. BD Either register pair BC or DE (B=BC, D=DE). BP Any byte pair symbol (B=BC, D=DE, H=HL, PSW=AF). RP Any register pair (B=BC, D=DE, H=HL, SP=SP). Addr A 16-Byte address. 8-Bit Transfers MOV RM1,RM2 Moves data from one register to another. MVI RM,data Puts 8 bits into register, or memory. LDA Addr Puts 8 bits at location Addr into A Register. STA Addr Stores 8 bits at location Addr. LDAX BD Loads A register with 8 bits from location in BC or DE. STAX BD Stores A register at location in BC or DE. 16-Bit Transfers LHLD Addr Loads HL register with 16 bits found at Addr and Addr+1. SHLD Addr Stores HL register contents at Addr and Addr+1. LXI RP,data Loads 16 bits into B,D,H, or SP. PUSH BP Puts 16 bits of BP onto stack. SP=SP-2. POP BP Takes top of stack, puts it in BP. SP=SP+2. XTHL Exchanges HL with top of stack. SPHL Puts contents of HL into SP (stack pointer). PCHL Puts contents of HL into PC (program counter) [=JMP (HL]. XCHG Exchanges HL and DE. 8-Bit Arithmetic ADD RM Adds contents of register R to A register. SUB RM Subtracts contents of register R from A register. INR RM Increments register R by one. R=R+1. DCR RM Decrements register R by one. R=R-1. CMP RM Compares contents of R with A register. ANA RM Logically ANDs contents of R with A register. ORA RM Logically ORs contents of R with A register. XRA RM Exclusive-OR contents of R with A register. ADI data Adds 8 bit data to contents of A register. SUI data Subtracts 8 bit data from contents of A register. CPI data Compares 8 bit data with contents of A register. ANI data Logically ORs 8 bit data with contents of A register. ORI data Logically ORs 8 bit data with contents of A register. XRI data Exclusive-OR 8 bit data with A register. DAA Convert A register to packed Binary Coded Decimal. ADC RM Add with carry. ACI data Add with carry immediate. SBB RM Subtract with borrow. SBI data Subtract with borrow immediate. 16-Bit Arithmetic DAD RP Adds contents of register RP to contents of HL register. INX RP Increments register RP. DCX RP Decrements register RP. Jumps, Calls, and Returns JMP Addr Unconditional Jump to location Addr. CALL Addr Unconditional Subroutine call to location Addr. RET Unconditional return from subroutine. Conditional variations Flag condition Jump Call Return -------------- ------ ------ ------ Nonzero JNZ CNZ RNZ Zero JZ CZ RZ No Carry JNC CNC RNC Carry JC CC RC Parity Odd JPO CPO RPO Parity Even JPE CPE RPE Plus JP CP RP Minus JM CM RM Rotations RAL Rotate Accumulator Left: Bit0=C C=Bit7. RAR Rotate Accumulator Right: Bit7=C C=Bit0. RLC Rotate Accumulator Left thru Carry: Bit0=Bit7 C=Bit7. RRC Rotate Accumulator Right thru Carry: Bit7=Bit0 C=Bit0. Other Instructions IN Port Data from Port placed in A register. OUT Port Data from A register placed in Port. CMC Complement Carry Flag. STC Set Carry Flag = 1. CMA Complement A register. HLT Halt CPU and wait for interrupt. NOP No operation. DI Disable Interrupts. EI Enable Interrupts. RST 0 Call 0000H. RST 1 Call 0008H. RST 2 Call 0010H. RST 3 Call 0018H. RST 4 Call 0020H. RST 5 Call 0028H. RST 6 Call 0030H. RST 7 Call 0038H. Assembler Directives ORG Addr Begin Assembly at Addr. END Causes Assembly to End. EQU Addr Define symbolic label. A label name must precede EQU. (For example, BDOS EQU 05H.) SET Exp Set numeric constant. IF Exp Conditional Assembly, if Exp<>0. ENDIF End of Conditional Assembly. DB List Define Bytes. May be Hex, ASCII, etc. DW List Define Words. May be Hex, ASCII, etc. DS Exp Define Storage of length Exp.