Here is a list of how many clockcycles the z80 instructions take. Let's optimize! Mnemonic Clock Siz OP-Code ADC A,(HL) 7 1 8E ADC A,(IX+N) 19 3 DD 8E XX ADC A,(IY+N) 19 3 FD 8E XX ADC A,r 4 1 88+rb ADC A,N 7 2 CE XX ADC HL,BC 15 2 ED 4A ADC HL,DE 15 2 ED 5A ADC HL,HL 15 2 ED 6A ADC HL,SP 15 2 ED 7A ADD A,(HL) 7 1 86 ADD A,(IX+N) 19 3 DD 86 XX ADD A,(IY+N) 19 3 FD 86 XX ADD A,r 4 1 80+rb ADD A,N 7 2 C6 XX ADD HL,BC 11 1 09 ADD HL,DE 11 1 19 ADD HL,HL 11 1 29 ADD HL,SP 11 1 39 ADD IX,BC 15 2 DD 09 ADD IX,DE 15 2 DD 19 ADD IX,IX 15 2 DD 29 ADD IX,SP 15 2 DD 39 ADD IY,BC 15 2 FD 09 ADD IY,DE 15 2 FD 19 ADD IY,IY 15 2 FD 29 ADD IY,SP 15 2 FD 39 AND (HL) 7 1 A6 AND (IX+N) 19 3 DD A6 XX AND (IY+N) 19 3 FD A6 XX AND r 4 1 A0+rb AND N 7 2 E6 XX BIT b,(HL) 12 2 CB 46+8*b BIT b,(IX+N) 20 4 DD CB XX 46+8*b BIT b,(IY+N) 20 4 FD CB XX 46+8*b BIT b,r 8 2 CB 40+8*b+rb CALL C,NN 17/1 3 DC XX XX CALL M,NN 17/1 3 FC XX XX CALL NC,NN 17/1 3 D4 XX XX CALL NC,NN 17/1 3 D4 XX XX CALL NN 17 3 CD XX XX CALL NZ,NN 17/1 3 C4 XX XX CALL P,NN 17/1 3 F4 XX XX CALL PE,NN 17/1 3 EC XX XX CALL PO,NN 17/1 3 E4 XX XX CALL Z,NN 17/1 3 CC XX XX CCF 4 1 3F CP (HL) 7 1 BE CP (IX+N) 19 3 DD BE XX CP (IY+N) 19 3 FD BE XX CP r 4 1 B8+rb CP N 7 2 FE XX CPD 16 2 ED A9 CPDR 21/1 2 ED B9 CPI 16 2 ED A1 CPIR 21/1 2 ED B1 CPL 4 1 2F DAA 4 1 27 DEC (HL) 11 1 35 DEC (IX+N) 23 3 DD 35 XX DEC (IY+N) 23 3 FD 35 XX DEC A 4 1 3D DEC B 4 1 05 DEC BC 6 1 0B DEC C 4 1 0D DEC D 4 1 15 DEC DE 6 1 1B DEC E 4 1 1D DEC H 4 1 25 DEC HL 6 1 2B DEC IX 10 2 DD 2B DEC IY 10 2 FD 2B DEC L 4 2 2D DEC SP 6 1 3B DI 4 1 F3 DJNZ $+2 13/8 1 10 EI 4 1 FB EX (SP),HL 19 1 E3 EX (SP),IX 23 2 DD E3 EX (SP),IY 23 2 FD E3 EX AF,AF' 4 1 08 EX DE,HL 4 1 EB EXX 4 1 D9 HALT 4 1 76 IM 0 8 2 ED 46 IM 1 8 2 ED 56 IM 2 8 2 ED 5E IN A,(C) 12 2 ED 78 IN A,(N) 11 2 DB XX IN B,(C) 12 2 ED 40 IN C,(C) 12 2 ED 48 IN D,(C) 12 2 ED 50 IN E,(C) 12 2 ED 58 IN H,(C) 12 2 ED 60 IN L,(C) 12 2 ED 68 INC (HL) 11 1 34 INC (IX+N) 23 3 DD 34 XX INC (IY+N) 23 3 FD 34 XX INC A 4 1 3C INC B 4 1 04 INC BC 6 1 03 INC C 4 1 0C INC D 4 1 14 INC DE 6 1 13 INC E 4 1 1C INC H 4 1 24 INC HL 6 1 23 INC IX 10 2 DD 23 INC IY 10 2 FD 23 INC L 4 1 2C INC SP 6 1 33 IND 16 2 ED AA INDR 21/1 2 ED BA INI 16 2 ED A2 INIR 21/1 2 ED B2 JP $NN 10 3 C3 XX XX JP (HL) 4 1 E9 JP (IX) 8 2 DD E9 JP (IY) 8 2 FD E9 JP C,$NN 10/1 3 DA XX XX JP M,$NN 10/1 3 FA XX XX JP NC,$NN 10/1 3 D2 XX XX JP NZ,$NN 10/1 3 C2 XX XX JP P,$NN 10/1 3 F2 XX XX JP PE,$NN 10/1 3 EA XX XX JP PO,$NN 10/1 3 E2 XX XX JP Z,$NN 10/1 3 CA XX XX JR $N+2 12 2 18 XX JR C,$N+2 12/7 2 38 XX JR NC,$N+2 12/7 2 30 XX JR NZ,$N+2 12/7 2 20 XX JR Z,$N+2 12/7 2 28 XX LD (BC),A 7 1 02 LD (DE),A 7 1 12 LD (HL),r 7 1 70+rb LD (HL),N 10 2 36 XX LD (IX+N),r 19 3 DD 70+rb XX LD (IX+N),N 19 4 DD 36 XX XX LD (IY+N),r 19 3 FD 70+rb XX LD (IY+N),N 19 4 FD 36 XX XX LD (NN),A 13 3 32 XX XX LD (NN),BC 20 4 ED 43 XX XX LD (NN),DE 20 4 ED 53 XX XX LD (NN),HL 16 3 22 XX XX LD (NN),IX 20 4 DD 22 XX XX LD (NN),IY 20 4 FD 22 XX XX LD (NN),SP 20 4 ED 73 XX XX LD A,(BC) 7 1 0A LD A,(DE) 7 1 1A LD A,(HL) 7 1 7E LD A,(IX+N) 19 3 DD 7E XX LD A,(IY+N) 19 3 FD 7E XX LD A,(NN) 13 3 3A XX XX LD A,r 4 1 78+rb LD A,I 9 2 ED 57 LD A,N 7 2 3E XX LD B,(HL) 7 1 46 LD B,(IX+N) 19 3 DD 46 XX LD B,(IY+N) 19 3 FD 46 XX LD B,r 4 1 40+rb LD B,N 7 2 06 XX LD BC,(NN) 20 4 ED 4B XX XX LD BC,NN 10 3 01 XX XX LD C,(HL) 7 1 4E LD C,(IX+N) 19 3 DD 4E XX LD C,(IY+N) 19 3 FD 4E XX LD C,r 4 1 48+rb LD C,N 7 2 0E XX LD D,(HL) 7 1 56 LD D,(IX+N) 19 3 DD 56 XX LD D,(IY+N) 19 3 FD 56 XX LD D,r 4 1 50+rb LD D,N 7 2 16 XX LD DE,(NN) 20 4 ED 5B XX XX LD DE,NN 10 3 11 XX XX LD E,(HL) 7 1 5E LD E,(IX+N) 19 3 DD 5E XX LD E,(IY+N) 19 3 FD 5E XX LD E,r 4 1 58+rb LD E,N 7 2 1E XX LD H,(HL) 7 1 66 LD H,(IX+N) 19 3 DD 66 XX LD H,(IY+N) 19 3 FD 66 XX LD H,r 4 1 60+rb LD H,N 7 2 26 XX LD HL,(NN) 20 3 2A XX XX LD HL,NN 10 3 21 XX XX LD I,A 9 2 ED 47 LD IX,(NN) 20 4 DD 2A XX XX LD IX,NN 14 4 DD 21 XX XX LD IY,(NN) 20 4 FD 2A XX XX LD IY,NN 14 4 FD 21 XX XX LD L,(HL) 7 1 6E LD L,(IX+N) 19 3 DD 6E XX LD L,(IY+N) 19 3 FD 6E XX LD L,r 4 1 68+rb LD L,N 7 2 2E XX LD SP,(NN) 20 4 ED 7B XX XX LD SP,HL 6 1 F9 LD SP,IX 10 2 DD F9 LD SP,IY 10 2 FD F9 LD SP,NN 10 3 31 XX XX LDD 16 2 ED A8 LDDR 21/1 2 ED B8 LDI 16 2 ED A0 LDIR 21/1 2 ED B0 NEG 8 2 ED 44 NOP 4 1 00 OR (HL) 7 1 B6 OR (IX+N) 19 3 DD B6 XX OR (IY+N) 19 3 FD B6 XX OR r 4 1 B0+rb OR N 7 2 F6 XX OTDR 21/1 2 ED BB OTIR 21/1 2 ED B3 OUT (C),A 12 2 ED 79 OUT (C),B 12 2 ED 41 OUT (C),C 12 2 ED 49 OUT (C),D 12 2 ED 51 OUT (C),E 12 2 ED 59 OUT (C),H 12 2 ED 61 OUT (C),L 12 2 ED 69 OUT (N),A 11 2 D3 XX OUTD 16 2 ED AB OUTI 16 2 ED A3 POP AF 10 1 F1 POP BC 10 1 C1 POP DE 10 1 D1 POP HL 10 1 E1 POP IX 14 2 DD E1 POP IY 14 2 FD E1 PUSH AF 11 1 F5 PUSH BC 11 1 C5 PUSH DE 11 1 D5 PUSH HL 11 1 E5 PUSH IX 15 2 DD E5 PUSH IY 15 2 FD E5 RES b,(HL) 15 2 CB 86+8*b RES b,(IX+N) 23 4 DD CB XX 86+8*b RES b,(IY+N) 23 4 FD CB XX 86+8*b RES b,r 8 2 CB 80+8*b+rb RET 10 1 C9 RET C 11/5 1 D8 RET M 11/5 1 F8 RET NC 11/5 1 D0 RET NZ 11/5 1 C0 RET P 11/5 1 F0 RET PE 11/5 1 E8 RET PO 11/5 1 E0 RET Z 11/5 1 C8 RETI 14 2 ED 4D RETN 14 2 ED 45 RL (HL) 15 2 CB 16 RL r 8 2 CB 10+rb RL (IX+N) 23 4 DD CB XX 16 RL (IY+N) 23 4 FD CB XX 16 RLA 4 1 17 RLC (HL) 15 2 CB 06 RLC (IX+N) 23 4 DD CB XX 06 RLC (IY+N) 23 4 FD CB XX 06 RLC r 8 2 CB 00+rb RLCA 4 1 07 RLD 18 2 ED 6F RR (HL) 15 2 CB 1E RR r 8 2 CB 18+rb RR (IX+N) 23 4 DD CB XX 1E RR (IY+N) 23 4 FD CB XX 1E RRA 4 1 1F RRC (HL) 15 2 CB 0E RRC (IX+N) 23 4 DD CB XX 0E RRC (IY+N) 23 4 FD CB XX 0E RRC r 8 2 CB 08+rb RRCA 4 1 0F RRD 18 2 ED 67 RST 0 11 1 C7 RST 8H 11 1 CF RST 10H 11 1 D7 RST 18H 11 1 DF RST 20H 11 1 E7 RST 28H 11 1 EF RST 30H 11 1 F7 RST 38H 11 1 FF SBC (HL) 7 1 9E SBC A,(IX+N) 19 3 DD 9E XX SBC A,(IY+N) 19 3 FD 9E XX SBC A,N 7 2 DE XX SBC r 4 1 98+rb SBC HL,BC 15 2 ED 42 SBC HL,DE 15 2 ED 52 SBC HL,HL 15 2 ED 62 SBC HL,SP 15 2 ED 72 SCF 4 1 37 SET b,(HL) 15 2 CB C6+8*b SET b,(IX+N) 23 4 DD CB XX C6+8*b SET b,(IY+N) 23 4 FD CB XX C6+8*b SET b,r 8 2 CB C0+8*b+rb SLA (HL) 15 2 CB 26 SLA (IX+N) 23 4 DD CB XX 26 SLA (IY+N) 23 4 FD CB XX 26 SLA r 8 2 CB 20+rb SRA (HL) 15 2 CB 2E SRA (IX+N) 23 4 DD CB XX 2E SRA (IY+N) 23 4 FD CB XX 2E SRA r 8 2 CB 28+rb SRL (HL) 15 2 CB 3E SRL (IX+N) 23 4 DD CB XX 3E SRL (IY+N) 23 4 FD CB XX 3E SRL r 8 2 CB 38+rb SUB (HL) 7 1 96 SUB (IX+N) 19 3 DD 96 XX SUB (IY+N) 19 3 FD 96 XX SUB r 4 1 90+rb SUB N 7 2 D6 XX XOR (HL) 7 1 AE XOR (IX+N) 19 3 DD AE XX XOR (IY+N) 19 3 FD AE XX XOR r 4 1 A8+rb XOR N 7 2 EE XX r means register. Can be A,B,C,D,E,H,L. Add this to last byte of OP-code: Reg regbits A 7 B 0 C 1 D 2 E 3 H 4 L 5 On >LD (IX+N),r< and >LD (IY+N),r< you add it to the byte before the last. b means bit. Can be 0-7. Increase the last byte of OP-code with 8*b. Used in SET, BIT and RES. If there is two numbers given at Clock, then the highest is when the jump is taken. Collected by Oscar Lindberg 960324 (offler@skip.adb.gu.se) from: Z80 pocketbook Z80 assembly language programming