Z80 Instruction set summary Table A-3. Z80 Mnemonics and Operations in Alphabetical Order +------------+--------------------+------+---+---+----------------------+ |Mnemonic |Operation |CZPSNH|Len|Tim|Comments | +------------+--------------------+------+---+---+----------------------+ |ADC A,r |A:=A+r+CY |**V*0*| 1 | 4 | r - A,B,C,D,E,H,L | |ADC A,(HL) |A:=A+(HL)+CY | | 1 | 7 | | |ADC A,n |A:=A+n+CY | | 2 | 7 | n - byte (0..FF) | |ADC A,(ii+n)|A:=A+(ii+n)+CY | | 3 |19 |ii - IX,IY | |ADC HL,rr |HL:=HL+rr+CY |**V*0x| 2 |15 |rr - BC,DE,HL,SP | +------------+--------------------+------+---+---+----------------------+ |ADD A,r |A:=A+r |**V*0*| 1 | 4 | | |ADD A,(HL) |A:=A+(HL) | | 1 | 7 | | |ADD A,n |A:=A+n | | 2 | 7 | | |ADD A,(ii+n)|A:=A+(ii+n) | | 3 |19 | | |ADD HL,rr |HL:=HL+rr |*...0x| 1 |11 | | |ADD IX,ry |IX:=IX+px | | 2 |15 |ry - BC,DE,SP,IY | |ADD IY,rx |IY:=IY+py | | 2 |15 |rx - BC,DE,SP,IX | +------------+--------------------+------+---+---+----------------------+ |AND r |A:=A and r |0*P*01| 1 | 4 | | |AND (HL) |A:=A and (HL) | | 1 | 7 | | |AND n |A:=A and n | | 2 | 7 | | |AND (ii+n) |A:=A and (ii+n) | | 3 |19 | | +------------+--------------------+------+---+---+----------------------+ |BIT b,r |Z:=not rb |.*xx01| 2 | 8 | b - bit number (0..7)| |BIT b,(HL) |Z:=not (HL)b | | 2 |12 |xb - bit b of | |BIT b,(ii+n)|Z:=not (ii+n)b | | 4 |20 | location x | +------------+--------------------+------+---+---+----------------------+ |CALL nn |PUSH PC;PC:=nn |......| 3 |17 |nn - word (0..FFFF) | |CALL cc,nn |If cc then CALL nn | | 3 |17 |cc - C,NC,Z,NZ,M,P,PE,| | | else continue | | |10 | PO | +------------+--------------------+------+---+---+----------------------+ |CCF |CY:=not CY |*...0x| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |CP r |A-r |**V*1*| 1 | 4 | | |CP (HL) |A-(HL) | | 1 | 7 | | |CP n |A-n | | 2 | 7 | | |CP (ii+n) |A-(ii+n) | | 3 |19 | | +------------+--------------------+------+---+---+----------------------+ |CPD |A-(HL);dec HL;dec BC|.***1*| 2 |16 |PV=0 if BC=0,else PV=1| +------------+--------------------+------+---+---+----------------------+ |CPDR |Repeat CPD |.***1*| 2 |21 | | | | until Z=1 or BC=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |CPI |A-(HL);inc HL;dec BC|.***1*| 2 |16 |PV=0 if BC=0,else PV=1| +------------+--------------------+------+---+---+----------------------+ |CPIR |Repeat CPI |.***1*| 2 |21 | | | | until Z=1 or BC=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |CPL |A:=A xor 255 |....11| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |DAA |Decimal adjust Acc. |**P*.*| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |DEC r |r:=r-1 |.*V*1*| 1 | 4 | | |DEC (HL) |(HL):=(HL)-1 | | 1 |11 | | |DEC (ii+n) |(ii+n):=(ii+n)-1 | | 3 |23 | | |DEC rr |rr:=rr-1 |......| 1 | 6 | | |DEC ii |ii:=ii-1 | | 2 |10 | | +------------+--------------------+------+---+---+----------------------+ |DI |IFF:=0 |......| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |DJNZ e |dec B;if B 0 JR e |......| 2 |13 | e - relative address | | | if B=0 continue| | | 8 | | +------------+--------------------+------+---+---+----------------------+ |EI |IFF:=1 |......| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |EX AF,AF' |AF<->AF' |......| 1 | 4 | | |EX DE,HL |DE<->HL | | 1 | 4 | | |EX (SP),HL |(SP)<->HL | | 1 | 4 | | |EX (SP),ii |(SP)<->ii | | 2 |23 | | +------------+--------------------+------+---+---+----------------------+ |EXX |BC<->BC';DE<->DE'; |......| 1 | 4 | | | |HL<->HL' | | | | | +------------+--------------------+------+---+---+----------------------+ |HALT |Halt CPU |......| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |IM 1 |Interrupt mode 1 |......| 2 | 8 | | |IM 2 |Interrupt mode 2 | | | | | |IM 3 |Interrupt mode 3 | | | | | +------------+--------------------+------+---+---+----------------------+ |IN A,(n) |A:=port(n) |......| 2 |11 | | |IN r,(C) |r:=port(C) |.*P*0*| 2 |12 | | |IN ?,(C) |only set flags as |.*P*0*| 2 |12 |can't be entered as a | | | as IN r,(C) does | | | |command;code is ED 70 | +------------+--------------------+------+---+---+----------------------+ |INC r |r:=r+1 |.*V*0*| 1 | 4 | | |INC (HL) |(HL):=(HL)+1 | | 1 |11 | | |INC (ii+n) |(ii+n):=(ii+n)+1 | | 3 |23 | | |INC rr |rr:=rr+1 |......| 1 | 6 | | |INC ii |ii:=ii+1 | | 2 |10 | | +------------+--------------------+------+---+---+----------------------+ |IND |(HL):=port(C); |x*xx1x| 2 |16 |Z=1 if B=0,else Z=0 | | |dec HL;dec B | | | | | +------------+--------------------+------+---+---+----------------------+ |INDR |Repeat IND |x1xx1x| 2 |21 | | | | until B=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |INI |(HL):=port(C); |x*xx1x| 2 |16 |Z=1 if B=0,else Z=0 | | |inc HL;dec B | | | | | +------------+--------------------+------+---+---+----------------------+ |INIR |Repeat INI |x1xx1x| 2 |21 | | | | until B=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |JP nn |PC:=nn |......| 3 |10 | | |JP cc,nn |If cc then JP nn |......| 3 |10 | | |JP (HL) |PC:=HL | | 1 | 4 | | |JP (ii) |PC:=ii | | 2 | 8 | | +------------+--------------------+------+---+---+----------------------+ |JR e |PC:=PC+e |......| 2 |12 | | |JR cond,e |If cond then JR e | | 2 |12 |cond - C,NC,Z,NZ | | | else NOP | | | 7 | | +------------+--------------------+------+---+---+----------------------+ |LD r,r |r:=r |......| 1 | 4 | | |LD r,(HL) |r:=(HL) | | 1 | 7 | | |LD r,n |r:=n | | 2 | 7 | | |LD r,(ii+n) |r:=(ii+n) | | 3 |19 | | |LD (HL),r |(HL):=r | | 1 | 7 | | |LD (ii+n),r |(ii+n):=r | | 3 |19 | | |LD (HL),n |(HL):=n | | 2 |10 | | |LD (ii+n),n |(ii+n):=n | | 4 |19 | | |LD A,(BC) |A:=(BC) | | 1 | 7 | | |LD A,(DE) |A:=(DE) | | 1 | 7 | | |LD A,(nn) |A:=(nn) | | 3 |13 | | |LD (BC),A |(BC):=A | | 1 | 7 | | |LD (DE),A |(DE):=A | | 1 | 7 | | |LD (nn),A |(nn):=A | | 3 |13 | | |LD A,I |A:=I |.***00| 2 | 9 |PV=IFF | |LD A,R |A:=R | | 2 | 9 |PV=IFF | |LD I,A |I:=A |......| 2 | 9 | | |LD R,A |R:=A | | 2 | 9 | | |LD rr,nn |rr:=nn | | 3 |10 | | |LD ii,nn |ii:=nn | | 4 |14 | | |LD HL,(nn) |HL:=(nn) | | 3 |16 | | |LD rr,(nn) |rr:=(nn) | | 4 |20 | | |LD ii,(nn) |ii:=(nn) | | 4 |20 | | |LD (nn),HL |(nn):=HL | | 3 |16 | | |LD (nn),rr |(nn):=rr | | 4 |20 | | |LD (nn),ii |(nn):=ii | | 4 |20 | | |LD SP,HL |SP:=HL | | 1 | 6 | | |LD SP,ii |SP:=ii | | 1 |10 | | +------------+--------------------+------+---+---+----------------------+ |LDD |(DE):=(HL); |..*.00| 2 |16 |PV=0 if BC=0,else PV=1| | |dec DE,HL,BC | | | | | +------------+--------------------+------+---+---+----------------------+ |LDDR |Repeat LDD |..0.00| 2 |21 | | | | until Z=1 or BC=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |LDI |(DE):=(HL); |..*.00| 2 |16 |PV=0 if BC=0,else PV=1| | |inc DE,HL;dec BC | | | | | +------------+--------------------+------+---+---+----------------------+ |LDIR |Repeat LDI |..0.00| 2 |21 | | | | until Z=1 or BC=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |NEG |A:=0-A |**V*1*| 2 | 8 | | +------------+--------------------+------+---+---+----------------------+ |NOP |No operation |......| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |OR r |A:=A or r |0*P*00| 1 | 4 | | |OR (HL) |A:=A or (HL) | | 1 | 7 | | |OR n |A:=A or n | | 2 | 7 | | |OR (ii+n) |A:=A or (ii+n) | | 3 |19 | | +------------+--------------------+------+---+---+----------------------+ |OTDR |Repeat OUTD |x1xx1x| 2 |21 | | | | until B=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |OTIR |Repeat OUTI |x1xx1x| 2 |21 | | | | until B=0 | | |16 | | +------------+--------------------+------+---+---+----------------------+ |OUT (n),A |port(n):=A |......| 2 |11 | | |OUT (C),r |port(C):=r | | 2 |12 | | +------------+--------------------+------+---+---+----------------------+ |OUTD |port(C):=(HL); |x*xx1x| 2 |16 |Z=1 if B=0,else Z=0 | | |dec HL;dec B | | | | | +------------+--------------------+------+---+---+----------------------+ |OUTI |port(C):=(HL); |x*xx1x| 2 |16 |Z=1 if B=0,else Z=0 | | |inc HL;dec B | | | | | +------------+--------------------+------+---+---+----------------------+ |POP qq |qq:=(SP);SP:=SP+2 |......| 1 |10 |qq - AF,BC,DE,HL | |POP ii |ii:=(SP);SP:=SP+2 | | 2 |14 | | +------------+--------------------+------+---+---+----------------------+ |PUSH qq |SP:=SP-2;(SP):=qq |......| 1 |11 | | |PUSH ii |SP:=SP-2;(SP):=ii | | 2 |15 | | +------------+--------------------+------+---+---+----------------------+ |RES b,r |rb:=0 |......| 2 | 8 | | |RES b,(HL) |(HL)b:=0 | | 2 |15 | | |RES b,(ii+n)|(ii+n)b:=0 | | 4 |23 | | +------------+--------------------+------+---+---+----------------------+ |RET |POP PC |......| 1 |10 | | |RET cc |If cc then RET |......| 1 |11 | | | | else NOP | | | 5 | | +------------+--------------------+------+---+---+----------------------+ |RETI |Return from interr. |......| 2 |14 | | +------------+--------------------+------+---+---+----------------------+ |RETN |Return from NMI |......| 2 |14 | | +------------+--------------------+------+---+---+----------------------+ |RL r |+------->------+ |**P*00| 2 | 8 | | |RL (HL) ||+--+ +-------+| | | 2 |15 | | |RL (ii+n) |++CY+<+7 <-- 0++ | | 4 |23 | | +------------+ +--+ +-------+ +------+---+---+----------------------+ |RLA | |*...00| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |RLC r | +---->----+ |**P*00| 2 | 8 | | |RLC (HL) |+--+ |+-------+| | | 2 |15 | | |RLC (ii+n) ||CY+<++7 <-- 0++ | | 4 |23 | | +------------++--+ +-------+ +------+---+---+----------------------+ |RLCA | |*...00| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |RLD | A +---->---+(HL)|.*P*00| 2 |18 | | | |+---+-+-++---+-+-+ | | | | | | ||7 4|3 0||7 4|3 0| | | | | | | |+---+-+-++++-+-+-+ | | | | | | | +-<-++-<-+ | | | | | +------------+--------------------+------+---+---+----------------------+ |RR r |+------<-------+ |**P*00| 2 | 8 | | |RR (HL) ||+-------+ +--+| | | 2 |15 | | |RR (ii+n) |++7 --> 0+>+CY++ | | 4 |23 | | +------------+ +-------+ +--+ +------+---+---+----------------------+ |RRA | |*...00| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |RRC r |+---<-----+ |**P*00| 2 | 8 | | |RRC (HL) ||+-------+| +--+ | | 2 |15 | | |RRC (ii+n) |++7 --> 0++>+CY| | | 4 |23 | | +------------+ +-------+ +--+ +------+---+---+----------------------+ |RRCA | |*...00| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |RRD | A +---<----+(HL)|.*P*00| 2 |18 | | | |+---+-+-++---+-+-+ | | | | | | ||7 4|3 0||7 4|3 0| | | | | | | |+---+-+-++++-+-+-+ | | | | | | | +->-++->-+ | | | | | +------------+--------------------+------+---+---+----------------------+ |RST adr |CALL adr |......| 1 |11 |adr - byte (000xxx00b)| +------------+--------------------+------+---+---+----------------------+ |SBC A,r |A:=A-r-CY |**V*1*| 1 | 4 | | |SBC A,(HL) |A:=A-(HL)-CY | | 1 | 7 | | |SBC A,n |A:=A-n-CY | | 2 | 7 | | |SBC A,(ii+n)|A:=A-(ii+n)-CY | | 3 |19 | | |SBC HL,rr |HL:=HL-rr-CY |**V*1x| 2 |15 | | +------------+--------------------+------+---+---+----------------------+ |SCF |CY:=1 |1...00| 1 | 4 | | +------------+--------------------+------+---+---+----------------------+ |SET b,r |rb:=1 |......| 2 | 8 | | |SET b,(HL) |(HL)b:=1 | | 2 |15 | | |SET b,(ii+n)|(ii+n)b:=1 | | 4 |23 | | +------------+--------------------+------+---+---+----------------------+ |SLA r |+--+ +-------+ |**P*00| 2 | 8 | | |SLA (HL) ||CY+<+7 <-- 0+<0 | | 2 |15 | | |SLA (ii+n) |+--+ +-------+ | | 4 |23 | | +------------+--------------------+------+---+---+----------------------+ |SRA r | +-------+ +--+ |**P*00| 2 | 8 | | |SRA (HL) |+>+7 --> 0+>+CY| | | 2 |15 | | |SRA (ii+n) |+-+-------+ +--+ | | 4 |23 | | +------------+--------------------+------+---+---+----------------------+ |SRL r | +-------+ +--+ |**P*00| 2 | 8 | | |SRL (HL) | 0>+7 --> 0+>+CY| | | 2 |15 | | |SRL (ii+n) | +-------+ +--+ | | 4 |23 | | +------------+--------------------+------+---+---+----------------------+ |SUB r |A:=A-r |**V*0*| 1 | 4 | | |SUB (HL) |A:=A-(HL) | | 1 | 7 | | |SUB n |A:=A-n | | 2 | 7 | | |SUB (ii+n) |A:=A-(ii+n) | | 3 |19 | | +------------+--------------------+------+---+---+----------------------+ |XOR r |A:=A xor r |0*P*00| 1 | 4 | | |XOR (HL) |A:=A xor (HL) | | 1 | 7 | | |XOR n |A:=A xor n | | 2 | 7 | | |XOR (ii+n) |A:=A xor (ii+n) | | 3 |19 | | +------------+--------------------+------+---+---+----------------------+