Z80 Instruction set

By ???

				
				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 |                      |
+------------+--------------------+------+---+---+----------------------+