CPU Opcodes for Intel i8080

In case you ever need them. (NOT COMPLETE)

OpcodeOperand 1Operand 2MnemonicDesc
00000000--NOPNo op.
00RR0001immlimmhLXI rr,immLoads the immediate 16-bit value in the specified register pair.
000R0010--STAX rrStores A in the memory location specified by register pair R (only BC and DE.)
00RR0011--INX rrIncrement register pair RR.
00DDD100--INR dddIncrement register DDD.
00DDD101--DCR dddDecrement register DDD.
00DDD110imm-MVI ddd,immStores the 8-bit value imm in register ddd.
00RR1001--DAD rrAdds register pair RR to register pair HL. Use when it becomes apparent.
00000000--NOPNo op.

3-bit values in instructions:

SSS/DDDidCCCFFF
B register000NZADI ADD (A = A + arg)
C register001ZACI ADC (A = A + arg + Carry flag)
D register010NCSUI SUB (A = A - arg)
E register011CSBI SBB (A = A - arg - Carry flag)
H register100PONDI AND (A = A AND arg)
L register101PEXRI XOR (A = A XOR arg)
Memory Access110PORI OR (A = A OR arg)
A register111SCPI CMP (A - arg, return flags, but not value)

Register pairs:

RRIndex
BC register pair00
DE register pair01
HL register pair10
SP (stack pointer)11

The i8080 has 7 general-purpose registers, with A being the accumulator, ALU instructions always use A as an operand and return the result in A. H and L are used in indirect addressing, where H and L are fused into a single 16-bit register, for memory access. The flags register has this format:

SZ0A0P1C
. The Program Counter (PC) is used to access instructions, and there is a stack that stores in memory, making it much more powerful than in previous processors.