Skip to content

Instantly share code, notes, and snippets.

@joefg
Created July 27, 2015 14:44
Show Gist options
  • Save joefg/634fa4a1046516d785c9 to your computer and use it in GitHub Desktop.
Save joefg/634fa4a1046516d785c9 to your computer and use it in GitHub Desktop.
A list of all 8080 opcodes. Mirror of Textfiles (http://textfiles.com/programming/8080.op) for posterity
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment