## ZX Spectrum - Z80 Instruction Set

Instruction Length
Flags

C Z P/V S N H

ADC A,(HL) 7 X | X | V | X | 0 | X

ADC A,(Ix+d) 19 X | X | V | X | 0 | X

ADC A,r 4 X | X | V | X | 0 | X

ADC A,n 7 X | X | V | X | 0 | X

ADC HL,rr 15 X | X | V | X | 0 | ?

| | | | |

ADD A,(HL) 7 X | X | V | X | 0 | X

ADD A,(Ix+d) 19 X | X | V | X | 0 | X

ADD A,r 4 X | X | V | X | 0 | X

ADD A,n 7 X | X | V | X | 0 | X

ADD HL,rr 11 X | | | | 0 | ?

ADD Ix,rr 15 X | | | | 0 | ?

ADD Ix,Ix 15 X | | | | 0 | ?

| | | | |

AND (HL) 7 0 | X | P | X | 0 | 1

AND (Ix+d) 19 0 | X | P | X | 0 | 1

AND r 4 0 | X | P | X | 0 | 1

AND n 7 0 | X | P | X | 0 | 1

| | | | |

BIT b,(HL) 12 | X | # | # | 0 | 1

BIT b,(Ix+d) 20 | X | # | # | 0 | 1

BIT b,r 8 | X | # | # | 0 | 1

| | | | |

CALL nn 17 | | | | |

CALL cc,nn 10/17 | | | | |

| | | | |

CCF 4 X | | | | 0 | #

| | | | |

CP (HL) 7 X | X | V | X | 1 | X

CP (Ix+d) 19 X | X | V | X | 1 | X

CP r 4 X | X | V | X | 1 | X

CP n 7 X | X | V | X | 1 | X

CPD 16 | X | X | X | 1 | #

CPDR 16/21 | X | X | X | 1 | #

CPI 16 | X | X | X | 1 | #

CPIR 16/21 | X | X | X | 1 | #

| | | | |

CPL 4 | | | | 1 | 1

| | | | |

DAA 4 X | X | P | X | | X

| | | | |

DEC (HL) 11 | X | V | X | 1 | X

DEC (Ix+d) 23 | X | V | X | 1 | X

DEC r 4 | X | V | X | 1 | X

DEC rr 6 | | | | |

DEC Ix 10 | | | | |

| | | | |

DI 4 | | | | |

| | | | |

DJNZ e 8/13 | X | V | X | 1 | X

| | | | |

EI 4 | | | | |

| | | | |

EX (SP),HL 19 | | | | |

EX (SP),Ix 23 | | | | |

EX AF,AF' 4 | | | | |

EX DE,HL 4 | | | | |

EXX 4 | | | | |

| | | | |

HALT 8 | | | | |

| | | | |

IM 0-2 8 | | | | |

| | | | |

IN r,(C) 12 | X | P | X | 0 | 0

IN A,(n) 11 | X | P | X | 0 | 0

| | | | |

INC (HL) 11 | X | V | X | 0 | X

INC (Ix+d) 23 | X | V | X | 0 | X

INC r 4 | X | V | X | 0 | X

INC rr 6 | | | | |

INC Ix 10 | | | | |

| | | | |

IND 16 | X | # | # | 1 | #

INDR 16/21 | X | # | # | 1 | #

INI 16 | X | # | # | 1 | #

INIR 16/21 | X | # | # | 1 | #

| | | | |

JP nn 10 | | | | |

JP (HL) 4 | | | | |

JP (Ix) 8 | | | | |

JP cc,nn 10 | | | | |

| | | | |

JR e 12 | | | | |

JR cc,e 7/12 | | | | |

| | | | |

LD (rr),A 7 | | | | |

LD (HL),r 7 | | | | |

LD (HL),n 10 | | | | |

LD (Ix+d),r 19 | | | | |

LD (Ix+d),n 19 | | | | |

LD (nn),A 13 | | | | |

LD (nn),rr 20 | | | | |

LD (nn),HL 16 | | | | |

LD (nn),Ix 20 | | | | |

LD (nn),SP 20 | | | | |

LD A,(rr) 7 | | | | |

LD r,(HL) 7 | | | | |

LD r,(Ix+d) 19 | | | | |

LD A,(nn) 13 | | | | |

LD A,I 9 | X |if2| X | 0 | 0

LD I,A 9 | | | | |

LD A,R 9 | X |if2| X | 0 | 0

LD R,A 9 | | | | |

LD r,r 4 | | | | |

LD r,n 7 | | | | |

LD rr,(nn) 20 | | | | |

LD HL,(nn) 16 | | | | |

LD Ix,(nn) 20 | | | | |

LD rr,nn 10 | | | | |

LD Ix,nn 14 | | | | |

LD SP,(nn) 20 | | | | |

LD SP,HL 6 | | | | |

LD SP,Ix 10 | | | | |

LD SP,nn 10 | | | | |

LDD 16 | # | X | # | 0 | 0

LDDR 16/21 | # | 0 | # | 0 | 0

LDI 16 | # | X | # | 0 | 0

LDIR 16/21 | # | X | # | 0 | 0

| | | | |

NEG 8 X | X | V | X | 1 | X

| | | | |

NOP 4 | | | | |

| | | | |

OR (HL) 7 0 | X | P | X | 0 | 0

OR (Ix+d) 19 0 | X | P | X | 0 | 0

OR r 4 0 | X | P | X | 0 | 0

OR n 7 0 | X | P | X | 0 | 0

| | | | |

OTDR 16/21 | 1 | # | # | 1 | #

OTIR 16/21 | 1 | # | # | 1 | #

OUT (C),r 12 | | | | |

OUT (n),A 11 | | | | |

OUTD 16 | X | # | # | 1 | #

OUTI 16 | X | # | # | 1 | #

| | | | |

POP rr 10 | | | | |

POP Ix 14 | | | | |

| | | | |

PUSH rr 11 | | | | |

PUSH Ix 15 | | | | |

| | | | |

RES b,(HL) 15 | | | | |

RES b,(Ix+d) 23 | | | | |

RES b,r 8 | | | | |

| | | | |

RET 10 | | | | |

RET cc 5/11 | | | | |

| | | | |

RETI 14 | | | | |

RETN 14 | | | | |

| | | | |

RL (HL) 15 X | X | P | X | 0 | 0

RL (Ix+d) 23 X | X | P | X | 0 | 0

RL r 8 X | X | P | X | 0 | 0

RLA 4 X | | | | 0 | 0

| | | | |

RLC (HL) 15 X | X | P | X | 0 | 0

RLC (Ix+d) 23 X | X | P | X | 0 | 0

RLC r 8 X | X | P | X | 0 | 0

RLCA 4 X | X | P | X | 0 | 0

| | | | |

RLD 18 | X | P | X | 0 | 0

| | | | |

RR (HL) 15 X | X | P | X | 0 | 0

RR (Ix+d) 23 X | X | P | X | 0 | 0

RR r 8 X | X | P | X | 0 | 0

RRA 4 X | | | | 0 | 0

| | | | |

RRC (HL) 15 X | X | P | X | 0 | 0

RRC (Ix+d) 23 X | X | P | X | 0 | 0

RRC r 8 X | X | P | X | 0 | 0

RRCA 4 X | X | P | X | 0 | 0

| | | | |

RRD 18 | | | | |

| | | | |

RST n 11 # | # | # | # | # | #

| | | | |

SBC A,n 7 X | X | V | X | 1 | X

SBC A,(HL) 7 X | X | V | X | 1 | X

SBC A,(Ix+d) 19 X | X | V | X | 1 | X

SBC A,r 4 X | X | V | X | 1 | X

SBC HL,rr 15 X | X | V | X | 1 | X

| | | | |

SCF 4 1 | | | | 0 | 0

| | | | |

SET b,(HL) 15 | | | | |

SET b,(Ix+d) 23 | | | | |

SET b,r 8 | | | | |

| | | | |

SLA (HL) 15 X | X | P | X | 0 | 0

SLA (Ix+d) 23 X | X | P | X | 0 | 0

SLA r 8 X | X | P | X | 0 | 0

| | | | |

SRA (HL) 15 X | X | P | X | 0 | 0

SRA (Ix+d) 23 X | X | P | X | 0 | 0

SRA r 8 X | X | P | X | 0 | 0

| | | | |

SLR (HL) 15 X | X | P | X | 0 | 0

SLR (Ix+d) 23 X | X | P | X | 0 | 0

SLR r 8 X | X | P | X | 0 | 0

| | | | |

SUB (HL) 7 X | X | V | X | 1 | X

SUB (Ix+d) 19 X | X | V | X | 1 | X

SUB r 4 X | X | V | X | 1 | X

SUB n 7 X | X | V | X | 1 | X

| | | | |

XOR (HL) 7 0 | X | P | X | 0 | 0

XOR (Ix+d) 19 0 | X | P | X | 0 | 0

XOR r 4 0 | X | P | X | 0 | 0

XOR n 7 0 | X | P | X | 0 | 0

Operands:

r = 8-bit register (A, B, C, D, E, H, I, L, R)

rr = 16-bit register (AF, BC, DE, HL, IX, IY, SP)

Ix = Either IX or IY

n = 8-bit number

nn = 16-bit number

b = Bit value (0-7)

d = Offset onto IX or IY

e = Offset destination address

cc = Condition (flag)

Flags:

C = Carry flag (C, NC)

Z = Zero (Z, NZ)

P/V = Parity/oVerflow (PO, PE)

S = Sign (P, M)

N = additioN

H = Half carry

1 = Flag is set

0 = Flag is reset

X = Flag is (re)set according to the operation

# = Status is not important

P = The P/V flag indicates Parity

V = The P/V flag indicates oVerflow

? = Status is unknown (undefined)

Length:

The length field is in T-states. 1 T-state is 1/3,500,000 seconds.