Difference between revisions of "Z80"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
Line 5: Line 5:
  
 
* [[Z80 - undocumented opcodes]]
 
* [[Z80 - undocumented opcodes]]
 +
 +
== Tutorials ==
 +
  
 
== Weblinks ==
 
== Weblinks ==
Line 25: Line 28:
 
|- style="background:#efefef;"
 
|- style="background:#efefef;"
 
|ADC A, (IX + N)||19||3||||DD 8E XX   
 
|ADC A, (IX + N)||19||3||||DD 8E XX   
|-
+
|- style="background:#efefef;"
 
|ADC A, (IY + N)||19||3||||FD 8E XX   
 
|ADC A, (IY + N)||19||3||||FD 8E XX   
 
|-
 
|-
Line 48: Line 51:
 
|ADD HL, BC||11||1||--?- 0 *||09||rowspan=4|Add (16-bit)||rowspan=4|HL = HL + ss  
 
|ADD HL, BC||11||1||--?- 0 *||09||rowspan=4|Add (16-bit)||rowspan=4|HL = HL + ss  
 
|-
 
|-
|ADD HL, ||11||1||||19
+
|ADD HL, DE||11||1||||19
 
|-
 
|-
 
|ADD HL, HL||11||1||||29
 
|ADD HL, HL||11||1||||29
Line 56: Line 59:
 
|ADD IX, BC||15||2||--?- 0 *||DD 09||rowspan=4|Add (IX register)||rowspan=4|IX = IX + pp  
 
|ADD IX, BC||15||2||--?- 0 *||DD 09||rowspan=4|Add (IX register)||rowspan=4|IX = IX + pp  
 
|- style="background:#efefef;"
 
|- style="background:#efefef;"
|ADD IX, DE||15||2|||| DD 19||||
+
|ADD IX, DE||15||2|||| DD 19
 
|- style="background:#efefef;"
 
|- style="background:#efefef;"
|ADD IX, IX||15||2|||| DD 29||||
+
|ADD IX, IX||15||2|||| DD 29
 
|- style="background:#efefef;"
 
|- style="background:#efefef;"
|ADD IX, SP||15||2|||| DD 39||||
+
|ADD IX, SP||15||2|||| DD 39
 
|-  
 
|-  
 
|ADD IY, BC||15||2||--?- 0 *||FD 09||rowspan=4|Add (IY register)||rowspan=4|IY = IY + rr
 
|ADD IY, BC||15||2||--?- 0 *||FD 09||rowspan=4|Add (IY register)||rowspan=4|IY = IY + rr
Line 82: Line 85:
 
|BIT b,r||8||2||?*1?0-||CB 40+8*b+rb||rowspan=4|Test Bit||rowspan=4|m&{2^b}||
 
|BIT b,r||8||2||?*1?0-||CB 40+8*b+rb||rowspan=4|Test Bit||rowspan=4|m&{2^b}||
 
|-
 
|-
|BIT b,(HL)||12||2||CB 46+8*b
+
|BIT b,(HL)||12||2||||CB 46+8*b
 
|-
 
|-
 
|BIT b,(IX+N)||20||4||||DD CB XX 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,(IY+N)||20||4||||FD CB XX 46+8*b
 +
|- style="background:#efefef;"
 +
|CALL NN||17||3||------||CD XX XX||Unconditional Call||-(SP)=PC,PC=nn
 +
|-
 +
|CALL C,NN||17/1||3||------||DC XX XX||rowspan=8|Conditional Call||If Carry = 1
 +
|-
 +
|CALL NC,NN||17/1||3||||D4 XX XX||If carry = 0
 +
|-
 +
|CALL M,NN||17/1||3||||FC XX XX||If Sign = 1 (negative)
 +
|-
 +
|CALL P,NN||17/1||3||||F4 XX XX||If Sign = 0 (positive)
 +
|-
 +
|CALL Z,NN||17/1||3||||CC XX XX||If Zero = 1 (ans.=0)
 +
|-
 +
|CALL NZ,NN||17/1||3||||C4 XX XX||If Zero = 0 (non-zero)
 +
|-
 +
|CALL PE,NN||17/1||3||||EC XX XX||If Parity = 1 (even)
 +
|-
 +
|CALL PO,NN||17/1||3||||E4 XX XX||If Parity = 0 (odd)
 +
|- style="background:#efefef;"
 +
|CCF||4||1||--?-0*||3F||Complement Carry Flag||CY=~CY                |
 +
|-
 +
|CP r||4||1||***V1*||B8+rb||rowspan=5|Compare||rowspan=5|Compare A-s
 +
|-
 +
|CP N||7||2||||FE XX
 +
|-
 +
|CP (HL)||7||1||||BE
 +
|-
 +
|CP (IX+N)||19||3||||DD BE XX
 +
|-
 +
|CP (IY+N)||19||3||||FD BE XX
 +
|-
 +
|CPD||16||2||****1-||ED A9||Compare and Decrement||A-(HL),HL=HL-1,BC=BC-1
 +
|-
 +
|CPDR||21/1||2||****1-||ED B9||Compare, Dec., Repeat||CPD till A=(HL)or BC=0
 +
|-
 +
|CPI||16||2||****1-||ED A1||Compare and Increment||A-(HL),HL=HL+1,BC=BC-1
 +
|-
 +
|CPIR||21/1||2||****1-||ED B1||Compare, Inc., Repeat||CPI till A=(HL)or BC=0
 +
|- style="background:#efefef;"
 +
|CPL||4||1||--1-1-||2F||Complement||A=~A
 +
|-
 +
|DAA||4||1||***P-*||27||Decimal Adjust Acc.||A=BCD format (dec.)
 +
|- style="background:#efefef;"
 +
|DEC A||4||1||***V1-||3D||rowspan=10|Decrement (8-bit)||rowspan=10|s=s-1
 +
|- style="background:#efefef;"
 +
|DEC B||4||1||||05
 +
|- style="background:#efefef;"
 +
|DEC C||4||1||||0D
 +
|- style="background:#efefef;"
 +
|DEC D||4||1||||15
 +
|- style="background:#efefef;"
 +
|DEC E||4||1||||1D
 +
|- style="background:#efefef;"
 +
|DEC H||4||1||||25
 +
|- style="background:#efefef;"
 +
|DEC L||4||2||||2D
 +
|- style="background:#efefef;"
 +
|DEC (HL)||11||1||||35
 +
|- style="background:#efefef;"
 +
|DEC (IX+N)||23||3||||DD 35 XX
 +
|- style="background:#efefef;"
 +
|DEC (IY+N)||23||3||||FD 35 XX
 +
|-
 +
|DEC BC||6||1||------||0B||rowspan=4|Decrement (16-bit)||rowspan=4|ss=ss-1
 +
|-
 +
|DEC DE||6||1||||1B
 +
|-
 +
|DEC HL||6||1||||2B
 +
|-
 +
|DEC SP||6||1||||3B
 +
|- style="background:#efefef;"
 +
|DEC IX||10||2||------||DD 2B||rowspan=2|Decrement||rowspan=2|xx=xx-1
 +
|- style="background:#efefef;"
 +
|DEC IY||10||2||||FD 2B
 
|-
 
|-
 
 
|}
 
|}
  
|CALL NN      | 17 | 3 |------|CD XX XX    |Unconditional Call  |-(SP)=PC,PC=nn        |
+
 
|CALL C,NN    |17/1| 3 |------|DC XX XX    |Conditional Call    |If Carry = 1          |
+
|CALL NC,NN  |17/1| 3 |      |D4 XX XX    |                    |If carry = 0          |
+
|CALL M,NN    |17/1| 3 |      |FC XX XX    |                    |If Sign = 1 (negative)|
+
|CALL P,NN    |17/1| 3 |      |F4 XX XX    |                    |If Sign = 0 (positive)|
+
|CALL Z,NN    |17/1| 3 |      |CC XX XX    |                    |If Zero = 1 (ans.=0)  |
+
|CALL NZ,NN  |17/1| 3 |      |C4 XX XX    |                    |If Zero = 0 (non-zero)|
+
|CALL PE,NN  |17/1| 3 |      |EC XX XX    |                    |If Parity = 1 (even)  |
+
|CALL PO,NN  |17/1| 3 |      |E4 XX XX    |                    |If Parity = 0 (odd)  |
+
+-------------+----+---+------+------------+---------------------+----------------------+
+
|CCF          | 4  | 1 |--?-0*|3F          |Complement Carry Flag|CY=~CY                |
+
+-------------+----+---+------+------------+---------------------+----------------------+
+
|CP r        | 4  | 1 |***V1*|B8+rb      |Compare              |Compare A-s          |
+
|CP N        | 7  | 2 |      |FE XX      |                    |                      |
+
|CP (HL)      | 7  | 1 |      |BE          |                    |                      |
+
|CP (IX+N)    | 19 | 3 |      |DD BE XX    |                    |                      |
+
|CP (IY+N)    | 19 | 3 |      |FD BE XX    |                    |                      |
+
|CPD          | 16 | 2 |****1-|ED A9      |Compare and Decrement|A-(HL),HL=HL-1,BC=BC-1|
+
|CPDR        |21/1| 2 |****1-|ED B9      |Compare, Dec., Repeat|CPD till A=(HL)or BC=0|
+
|CPI          | 16 | 2 |****1-|ED A1      |Compare and Increment|A-(HL),HL=HL+1,BC=BC-1|
+
|CPIR        |21/1| 2 |****1-|ED B1      |Compare, Inc., Repeat|CPI till A=(HL)or BC=0|
+
+-------------+----+---+------+------------+---------------------+----------------------+
+
|CPL          | 4  | 1 |--1-1-|2F          |Complement          |A=~A                  |
+
+-------------+----+---+------+------------+---------------------+----------------------+
+
|DAA          | 4  | 1 |***P-*|27          |Decimal Adjust Acc.  |A=BCD format  (dec.)  |
+
 
+-------------+----+---+------+------------+---------------------+----------------------+
 
+-------------+----+---+------+------------+---------------------+----------------------+
|DEC A        | 4  | 1 |***V1-|3D          |Decrement (8-bit)    |s=s-1                |
 
|DEC B        | 4  | 1 |      |05          |                    |                      |
 
|DEC C        | 4  | 1 |      |0D          |                    |                      |
 
|DEC D        | 4  | 1 |      |15          |                    |                      |
 
|DEC E        | 4  | 1 |      |1D          |                    |                      |
 
|DEC H        | 4  | 1 |      |25          |                    |                      |
 
|DEC L        | 4  | 2 |      |2D          |                    |                      |
 
|DEC (HL)    | 11 | 1 |      |35          |                    |                      |
 
|DEC (IX+N)  | 23 | 3 |      |DD 35 XX    |                    |                      |
 
|DEC (IY+N)  | 23 | 3 |      |FD 35 XX    |                    |                      |
 
|DEC BC      | 6  | 1 |------|0B          |Decrement (16-bit)  |ss=ss-1              |
 
|DEC DE      | 6  | 1 |      |1B          |                    |                      |
 
|DEC HL      | 6  | 1 |      |2B          |                    |                      |
 
|DEC SP      | 6  | 1 |      |3B          |                    |                      |
 
|DEC IX      | 10 | 2 |------|DD 2B      |Decrement            |xx=xx-1              |
 
|DEC IY      | 10 | 2 |      |FD 2B      |                    |                      |
 
 
+-------------+----+---+------+------------+---------------------+----------------------+
 
+-------------+----+---+------+------------+---------------------+----------------------+
 
|DI          | 4  | 1 |------|F3          |Disable Interrupts  |                      |
 
|DI          | 4  | 1 |------|F3          |Disable Interrupts  |                      |

Revision as of 09:47, 1 April 2008

Zilog Z80A

Microprocessor from Zilog, wich is used in the Amstrad CPC Computers. The Z80/Z80A was a very popular microprocessor, used in a great variety of home computers and appliances as far-fetched as satelites. It was even used in the Commodore C128 as a secondary processor in order to achieve CP/M compatibility.

See also

Tutorials

Weblinks

Opcodes

Check the end of the document for explanations of abbreviations used below.

Mnemonic Clock Size SZHPNC Opcode Description Notes
ADC A, r 4 1 *** V0 * 88 + rb Add with Carry A = A + s + CY
ADC A, N 7 2 CE XX
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 HL, BC 15 2 **? V0 * ED 4A Add with Carry HL = HL + + ss CY
ADC HL, DE 15 2 ED 5A
ADC HL, HL 15 2 ED 6A
ADC HL, SP 15 2 ED 7A
ADD A, r 4 1 *** V0 * 80 + rb Add (8-bit) A = A + s
ADD A, N 7 2 C6 XX
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 HL, BC 11 1 --?- 0 * 09 Add (16-bit) HL = HL + ss
ADD HL, DE 11 1 19
ADD HL, HL 11 1 29
ADD HL, SP 11 1 39
ADD IX, BC 15 2 --?- 0 * DD 09 Add (IX register) IX = IX + pp
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 --?- 0 * FD 09 Add (IY register) IY = IY + rr
ADD IY, 15 2 FD 19
ADD IY, IY 15 2 FD 29
ADD IY, SP 15 2 FD 39
AND r 4 1 ***P00 A0+rb Logical AND A=A&s
AND N 7 2 E6 XX
AND (HL) 7 1 A6
AND (IX+N) 19 3 DD A6 XX
AND (IY+N) 19 3 FD A6 XX
BIT b,r 8 2 ?*1?0- CB 40+8*b+rb Test Bit m&{2^b}
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
CALL NN 17 3 ------ CD XX XX Unconditional Call -(SP)=PC,PC=nn
CALL C,NN 17/1 3 ------ DC XX XX Conditional Call If Carry = 1
CALL NC,NN 17/1 3 D4 XX XX If carry = 0
CALL M,NN 17/1 3 FC XX XX If Sign = 1 (negative)
CALL P,NN 17/1 3 F4 XX XX If Sign = 0 (positive)
CALL Z,NN 17/1 3 CC XX XX If Zero = 1 (ans.=0)
CALL NZ,NN 17/1 3 C4 XX XX If Zero = 0 (non-zero)
CALL PE,NN 17/1 3 EC XX XX If Parity = 1 (even)
CALL PO,NN 17/1 3 E4 XX XX If Parity = 0 (odd)
CCF 4 1 --?-0* 3F Complement Carry Flag
CP r 4 1 ***V1* B8+rb Compare Compare A-s
CP N 7 2 FE XX
CP (HL) 7 1 BE
CP (IX+N) 19 3 DD BE XX
CP (IY+N) 19 3 FD BE XX
CPD 16 2 ****1- ED A9 Compare and Decrement A-(HL),HL=HL-1,BC=BC-1
CPDR 21/1 2 ****1- ED B9 Compare, Dec., Repeat CPD till A=(HL)or BC=0
CPI 16 2 ****1- ED A1 Compare and Increment A-(HL),HL=HL+1,BC=BC-1
CPIR 21/1 2 ****1- ED B1 Compare, Inc., Repeat CPI till A=(HL)or BC=0
CPL 4 1 --1-1- 2F Complement A=~A
DAA 4 1 ***P-* 27 Decimal Adjust Acc. A=BCD format (dec.)
DEC A 4 1 ***V1- 3D Decrement (8-bit) s=s-1
DEC B 4 1 05
DEC C 4 1 0D
DEC D 4 1 15
DEC E 4 1 1D
DEC H 4 1 25
DEC L 4 2 2D
DEC (HL) 11 1 35
DEC (IX+N) 23 3 DD 35 XX
DEC (IY+N) 23 3 FD 35 XX
DEC BC 6 1 ------ 0B Decrement (16-bit) ss=ss-1
DEC DE 6 1 1B
DEC HL 6 1 2B
DEC SP 6 1 3B
DEC IX 10 2 ------ DD 2B Decrement xx=xx-1
DEC IY 10 2 FD 2B


+-------------+----+---+------+------------+---------------------+----------------------+ +-------------+----+---+------+------------+---------------------+----------------------+ |DI | 4 | 1 |------|F3 |Disable Interrupts | | +-------------+----+---+------+------------+---------------------+----------------------+ |DJNZ $+2 |13/8| 1 |------|10 |Dec., Jump Non-Zero |B=B-1 till B=0 | +-------------+----+---+------+------------+---------------------+----------------------+ |EI | 4 | 1 |------|FB |Enable Interrupts | | +-------------+----+---+------+------------+---------------------+----------------------+ |EX (SP),HL | 19 | 1 |------|E3 |Exchange |(SP)<->HL | |EX (SP),IX | 23 | 2 |------|DD E3 | |(SP)<->xx | |EX (SP),IY | 23 | 2 | |FD E3 | | | |EX AF,AF' | 4 | 1 |------|08 | |AF<->AF' | |EX DE,HL | 4 | 1 |------|EB | |DE<->HL | |EXX | 4 | 1 |------|D9 |Exchange |qq<->qq' (except AF)| +-------------+----+---+------+------------+---------------------+----------------------+ |HALT | 4 | 1 |------|76 |Halt | | +-------------+----+---+------+------------+---------------------+----------------------+ |IM 0 | 8 | 2 |------|ED 46 |Interrupt Mode | (n=0,1,2)| |IM 1 | 8 | 2 | |ED 56 | | | |IM 2 | 8 | 2 | |ED 5E | | | +-------------+----+---+------+------------+---------------------+----------------------+ |IN A,(N) | 11 | 2 |------|DB XX |Input |A=(n) | |IN (C) | 12 | 2 |***P0-|ED 70 |Input* | (Unsupported)| |IN A,(C) | 12 | 2 |***P0-|ED 78 |Input |r=(C) | |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 A | 4 | 1 |***V0-|3C |Increment (8-bit) |r=r+1 | |INC B | 4 | 1 | |04 | | | |INC C | 4 | 1 | |0C | | | |INC D | 4 | 1 | |14 | | | |INC E | 4 | 1 | |1C | | | |INC H | 4 | 1 | |24 | | | |INC L | 4 | 1 | |2C | | | |INC BC | 6 | 1 |------|03 |Increment (16-bit) |ss=ss+1 | |INC DE | 6 | 1 | |13 | | | |INC HL | 6 | 1 | |23 | | | |INC SP | 6 | 1 | |33 | | | |INC IX | 10 | 2 |------|DD 23 |Increment |xx=xx+1 | |INC IY | 10 | 2 | |FD 23 | | | |INC (HL) | 11 | 1 |***V0-|34 |Increment (indirect) |(HL)=(HL)+1 | |INC (IX+N) | 23 | 3 |***V0-|DD 34 XX |Increment |(xx+d)=(xx+d)+1 | |INC (IY+N) | 23 | 3 | |FD 34 XX | | | +-------------+----+---+------+------------+---------------------+----------------------+ |IND | 16 | 2 |?*??1-|ED AA |Input and Decrement |(HL)=(C),HL=HL-1,B=B-1| |INDR |21/1| 2 |?1??1-|ED BA |Input, Dec., Repeat |IND till B=0 | |INI | 16 | 2 |?*??1-|ED A2 |Input and Increment |(HL)=(C),HL=HL+1,B=B-1| |INIR |21/1| 2 |?1??1-|ED B2 |Input, Inc., Repeat |INI till B=0 | +-------------+----+---+------+------------+---------------------+----------------------+ |JP $NN | 10 | 3 |------|C3 XX XX |Unconditional Jump |PC=nn | |JP (HL) | 4 | 1 |------|E9 |Unconditional Jump |PC=(HL) | |JP (IX) | 8 | 2 |------|DD E9 |Unconditional Jump |PC=(xx) | |JP (IY) | 8 | 2 | |FD E9 | | | |JP C,$NN |10/1| 3 |------|DA XX XX |Conditional Jump |If Carry = 1 | |JP NC,$NN |10/1| 3 | |D2 XX XX | |If Carry = 0 | |JP M,$NN |10/1| 3 | |FA XX XX | |If Sign = 1 (negative)| |JP P,$NN |10/1| 3 | |F2 XX XX | |If Sign = 0 (positive)| |JP Z,$NN |10/1| 3 | |CA XX XX | |If Zero = 1 (ans.= 0) | |JP NZ,$NN |10/1| 3 | |C2 XX XX | |If Zero = 0 (non-zero)| |JP PE,$NN |10/1| 3 | |EA XX XX | |If Parity = 1 (even) | |JP PO,$NN |10/1| 3 | |E2 XX XX | |If Parity = 0 (odd) | +-------------+----+---+------+------------+---------------------+----------------------+ |JR $N+2 | 12 | 2 |------|18 XX |Relative Jump |PC=PC+e | |JR C,$N+2 |12/7| 2 |------|38 XX |Cond. Relative Jump |If cc JR(cc=C,NC,NZ,Z)| |JR NC,$N+2 |12/7| 2 | |30 XX | | | |JR Z,$N+2 |12/7| 2 | |28 XX | | | |JR NZ,$N+2 |12/7| 2 | |20 XX | | | +-------------+----+---+------+------------+---------------------+----------------------+ |LD I,A | 9 | 2 |------|ED 47 |Load* |dst=src | |LD R,A | 9 | 2 | |ED 4F | | | |LD A,I | 9 | 2 |**0*0-|ED 57 |Load* |dst=src | |LD A,R | 9 | 2 | |ED 5F | | | |LD A,r | 4 | 1 |------|78+rb |Load (8-bit) |dst=src | |LD A,N | 7 | 2 | |3E 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 B,r | 4 | 1 | |40+rb | | | |LD B,N | 7 | 2 | |06 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 C,r | 4 | 1 | |48+rb | | | |LD C,N | 7 | 2 | |0E 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 D,r | 4 | 1 | |50+rb | | | |LD D,N | 7 | 2 | |16 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 E,r | 4 | 1 | |58+rb | | | |LD E,N | 7 | 2 | |1E 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 H,r | 4 | 1 | |60+rb | | | |LD H,N | 7 | 2 | |26 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 L,r | 4 | 1 | |68+rb | | | |LD L,N | 7 | 2 | |2E 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 BC,(NN) | 20 | 4 |------|ED 4B XX XX |Load (16-bit) |dst=src | |LD BC,NN | 10 | 3 | |01 XX XX | | | |LD DE,(NN) | 20 | 4 | |ED 5B XX XX | | | |LD DE,NN | 10 | 3 | |11 XX XX | | | |LD HL,(NN) | 20 | 3 | |2A XX XX | | | |LD HL,NN | 10 | 3 | |21 XX 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 | | | |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 (HL),r | 7 | 1 |------|70+rb |Load (Indirect) |dst=src | |LD (HL),N | 10 | 2 | |36 XX | | | |LD (BC),A | 7 | 1 | |02 | | | |LD (DE),A | 7 | 1 | |12 | | | |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 (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 | | | +-------------+----+---+------+------------+---------------------+----------------------+ |LDD | 16 | 2 |--0*0-|ED A8 |Load and Decrement |(DE)=(HL),HL=HL-1,# | |LDDR |21/1| 2 |--000-|ED B8 |Load, Dec., Repeat |LDD till BC=0 | |LDI | 16 | 2 |--0*0-|ED A0 |Load and Increment |(DE)=(HL),HL=HL+1,# | |LDIR |21/1| 2 |--000-|ED B0 |Load, Inc., Repeat |LDI till BC=0 | +-------------+----+---+------+------------+---------------------+----------------------+ |NEG | 8 | 2 |***V1*|ED 44 |Negate |A=-A | +-------------+----+---+------+------------+---------------------+----------------------+ |NOP | 4 | 1 |------|00 |No Operation | | +-------------+----+---+------+------------+---------------------+----------------------+ |OR r | 4 | 1 |***P00|B0+rb |Logical inclusive OR |A=Avs | |OR N | 7 | 2 | |F6 XX | | | |OR (HL) | 7 | 1 | |B6 | | | |OR (IX+N) | 19 | 3 | |DD B6 XX | | | |OR (IY+N) | 19 | 3 | |FD B6 XX | | | +-------------+----+---+------+------------+---------------------+----------------------+ |OUT (N),A | 11 | 2 |------|D3 XX |Output |(n)=A | |OUT (C),0 | 12 | 2 |------|ED 71 |Output* | (Unsupported)| |OUT (C),A | 12 | 2 |------|ED 79 |Output |(C)=r | |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 | | | +-------------+----+---+------+------------+---------------------+----------------------+ |OUTD | 16 | 2 |?*??1-|ED AB |Output and Decrement |(C)=(HL),HL=HL-1,B=B-1| |OTDR |21/1| 2 |?1??1-|ED BB |Output, Dec., Repeat |OUTD till B=0 | |OUTI | 16 | 2 |?*??1-|ED A3 |Output and Increment |(C)=(HL),HL=HL+1,B=B-1| |OTIR |21/1| 2 |?1??1-|ED B3 |Output, Inc., Repeat |OUTI till B=0 | +-------------+----+---+------+------------+---------------------+----------------------+ |POP AF | 10 | 1 |------|F1 |Pop |qq=(SP)+ | |POP BC | 10 | 1 | |C1 | | | |POP DE | 10 | 1 | |D1 | | | |POP HL | 10 | 1 | |E1 | | | |POP IX | 14 | 2 |------|DD E1 |Pop |xx=(SP)+ | |POP IY | 14 | 2 | |FD E1 | | | |PUSH AF | 11 | 1 |------|F5 |Push |-(SP)=qq | |PUSH BC | 11 | 1 | |C5 | | | |PUSH DE | 11 | 1 | |D5 | | | |PUSH HL | 11 | 1 | |E5 | | | |PUSH IX | 15 | 2 |------|DD E5 |Push |-(SP)=xx | |PUSH IY | 15 | 2 | |FD E5 | | | +-------------+----+---+------+------------+---------------------+----------------------+ |RES b,r | 8 | 2 |------|CB 80+8*b+rb|Reset bit |m=m&{~2^b} | |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 | | +-------------+----+---+------+------------+---------------------+----------------------+ |RET | 10 | 1 |------|C9 |Return |PC=(SP)+ | |RET C |11/5| 1 |------|D8 |Conditional Return |If Carry = 1 | |RET NC |11/5| 1 | |D0 | |If Carry = 0 | |RET M |11/5| 1 | |F8 | |If Sign = 1 (negative)| |RET P |11/5| 1 | |F0 | |If Sign = 0 (positive)| |RET Z |11/5| 1 | |C8 | |If Zero = 1 (ans.=0) | |RET NZ |11/5| 1 | |C0 | |If Zero = 0 (non-zero)| |RET PE |11/5| 1 | |E8 | |If Parity = 1 (even) | |RET PO |11/5| 1 | |E0 | |If Parity = 0 (odd) | +-------------+----+---+------+------------+---------------------+----------------------+ |RETI | 14 | 2 |------|ED 4D |Return from Interrupt|PC=(SP)+ | |RETN | 14 | 2 |------|ED 45 |Return from NMI |PC=(SP)+ | +-------------+----+---+------+------------+---------------------+----------------------+ |RLA | 4 | 1 |--0-0*|17 |Rotate Left Acc. |A={CY,A}<- | |RL r | 8 | 2 |**0P0*|CB 10+rb |Rotate Left |m={CY,m}<- | |RL (HL) | 15 | 2 | |CB 16 | | | |RL (IX+N) | 23 | 4 | |DD CB XX 16 | | | |RL (IY+N) | 23 | 4 | |FD CB XX 16 | | | |RLCA | 4 | 1 |--0-0*|07 |Rotate Left Cir. Acc.|A=A<- | |RLC r | 8 | 2 |**0P0*|CB 00+rb |Rotate Left Circular |m=m<- | |RLC (HL) | 15 | 2 | |CB 06 | | | |RLC (IX+N) | 23 | 4 | |DD CB XX 06 | | | |RLC (IY+N) | 23 | 4 | |FD CB XX 06 | | | |RLD | 18 | 2 |**0P0-|ED 6F |Rotate Left 4 bits |{A,(HL)}={A,(HL)}<- ##| |RRA | 4 | 1 |--0-0*|1F |Rotate Right Acc. |A=->{CY,A} | |RR r | 8 | 2 |**0P0*|CB 18+rb |Rotate Right |m=->{CY,m} | |RR (HL) | 15 | 2 | |CB 1E | | | |RR (IX+N) | 23 | 4 | |DD CB XX 1E | | | |RR (IY+N) | 23 | 4 | |FD CB XX 1E | | | |RRCA | 4 | 1 |--0-0*|0F |Rotate Right Cir.Acc.|A=->A | |RRC r | 8 | 2 |**0P0*|CB 08+rb |Rotate Right Circular|m=->m | |RRC (HL) | 15 | 2 | |CB 0E | | | |RRC (IX+N) | 23 | 4 | |DD CB XX 0E | | | |RRC (IY+N) | 23 | 4 | |FD CB XX 0E | | | |RRD | 18 | 2 |**0P0-|ED 67 |Rotate Right 4 bits |{A,(HL)}=->{A,(HL)} ##| +-------------+----+---+------+------------+---------------------+----------------------+ |RST 0 | 11 | 1 |------|C7 |Restart | (p=0H,8H,10H,...,38H)| |RST 08H | 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 r | 4 | 1 |***V1*|98+rb |Subtract with Carry |A=A-s-CY | |SBC A,N | 7 | 2 | |DE XX | | | |SBC (HL) | 7 | 1 | |9E | | | |SBC A,(IX+N) | 19 | 3 | |DD 9E XX | | | |SBC A,(IY+N) | 19 | 3 | |FD 9E XX | | | |SBC HL,BC | 15 | 2 |**?V1*|ED 42 |Subtract with Carry |HL=HL-ss-CY | |SBC HL,DE | 15 | 2 | |ED 52 | | | |SBC HL,HL | 15 | 2 | |ED 62 | | | |SBC HL,SP | 15 | 2 | |ED 72 | | | +-------------+----+---+------+------------+---------------------+----------------------+ |SCF | 4 | 1 |--0-01|37 |Set Carry Flag |CY=1 | +-------------+----+---+------+------------+---------------------+----------------------+ |SET b,r | 8 | 2 |------|CB C0+8*b+rb|Set bit |m=mv{2^b} | |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 | | +-------------+----+---+------+------------+---------------------+----------------------+ |SLA r | 8 | 2 |**0P0*|CB 20+rb |Shift Left Arithmetic|m=m*2 | |SLA (HL) | 15 | 2 | |CB 26 | | | |SLA (IX+N) | 23 | 4 | |DD CB XX 26 | | | |SLA (IY+N) | 23 | 4 | |FD CB XX 26 | | | |SRA r | 8 | 2 |**0P0*|CB 28+rb |Shift Right Arith. |m=m/2 | |SRA (HL) | 15 | 2 | |CB 2E | | | |SRA (IX+N) | 23 | 4 | |DD CB XX 2E | | | |SRA (IY+N) | 23 | 4 | |FD CB XX 2E | | | +-------------+----+---+------+------------+---------------------+----------------------+ |SLL r | 8 | 2 |**0P0*|CB 30+rb |Shift Left Logical* |m={0,m,CY}<- | |SLL (HL) | 15 | 2 | |CB 36 | | (SLL instructions | |SLL (IX+N) | 23 | 4 | |DD CB XX 36 | | are Unsupported) | |SLL (IY+N) | 23 | 4 | |FD CB XX 36 | | | |SRL r | 8 | 2 |**0P0*|CB 38+rb |Shift Right Logical |m=->{0,m,CY} | |SRL (HL) | 15 | 2 | |CB 3E | | | |SRL (IX+N) | 23 | 4 | |DD CB XX 3E | | | |SRL (IY+N) | 23 | 4 | |FD CB XX 3E | | | +-------------+----+---+------+------------+---------------------+----------------------+ |SUB r | 4 | 1 |***V1*|90+rb |Subtract |A=A-s | |SUB N | 7 | 2 | |D6 XX | | | |SUB (HL) | 7 | 1 | |96 | | | |SUB (IX+N) | 19 | 3 | |DD 96 XX | | | |SUB (IY+N) | 19 | 3 | |FD 96 XX | | | +-------------+----+---+------+------------+---------------------+----------------------+ |XOR r | 4 | 1 |***P00|A8+rb |Logical Exclusive OR |A=Axs | |XOR N | 7 | 2 | |EE XX | | | |XOR (HL) | 7 | 1 | |AE | | | |XOR (IX+N) | 19 | 3 | |DD AE XX | | | |XOR (IY+N) | 19 | 3 | |FD AE XX | | |

  1. -------------+----+---+------+------------+---------------------+----------------------#