Changes

Z80

No change in size, 11 March
/* Z80 Instructions */
* tmp, tmp2 = temporary storage whose value is thrown away after each instruction
=== 8-bit ALU Load group ===
Legend: r: 000=B, 001=C, 010=D, 011=E, 100=H, 101=L, 110=(HL), 111=A ; s: 000=B, 001=C, 010=D, 011=E, 100=IXH/IYH, 101=IXL/IYL, 110=(IX/IY + d), 111=A
 
{| class="wikitable" style="white-space: nowrap;"
|-
! Instruction !! Opcode !! NOPs !! Cycles !! S !! Z !! 5 !! H !! 3 !! P !! N !! C !! Effect !! Description
|-
| ld r1,r2 || 01rrrsss || 1 || 4 (4) || - || - || - || - || - || - || - || - || r1 := r2 ||rowspan=15|8-bit Load
|-
| ld (hl),r || 01110rrr || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || (hl) := r
|-
| ld r,(hl) || 01rrr110 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || r := (hl)
|-
| ld s1,s2 || DD/FD 01sssttt || 2 || 8 (4,4) || - || - || - || - || - || - || - || - || s1 := s2
|-
| ld (ixy+d),r || DD/FD 01110rrr dddddddd || 5 || 19 (4,4,3,5,3) || - || - || - || - || - || - || - || - || (ixy+d) := r
|-
| ld r,(ixy+d) || DD/FD 01rrr110 dddddddd || 5 || 19 (4,4,3,5,3) || - || - || - || - || - || - || - || - || r := (ixy+d)
|-
| ld r,n || 00rrr110 nnnnnnnn || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || r := n
|-
| ld (hl),n || 00110110 nnnnnnnn || 3 || 10 (4,3,3) || - || - || - || - || - || - || - || - || (hl) := n
|-
| ld (ixy+d),n || DD/FD 00110110 dddddddd nnnnnnnn || 6 || 19 (4,4,3,5,3) || - || - || - || - || - || - || - || - || (ixy+d) := n
|-
| ld (bc),a || 00000010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || (bc) := a
|-
| ld a,(bc) || 00001010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || a := (bc)
|-
| ld (de),a || 00010010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || (de) := a
|-
| ld a,(de) || 00011010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || a := (de)
|-
| ld (nn),a || 00110010 lolololo hihihihi || 4 || 13 (4,3,3,3) || - || - || - || - || - || - || - || - || (nn) := a
|-
| ld a,(nn) || 00111010 lolololo hihihihi || 4 || 13 (4,3,3,3) || - || - || - || - || - || - || - || - || a := (nn)
|-
| ld pp,nn || 00pp0001 lolololo hihihihi || 3 || 10 (4,3,3) || - || - || - || - || - || - || - || - || pp := nn ||rowspan=10|16-bit Load
|-
| ld qq,nn || DD/FD 00qq0001 lolololo hihihihi || 4 || 14 (4,4,3,3) || - || - || - || - || - || - || - || - || qq := nn
|-
| ld (nn),hl || 00100010 lolololo hihihihi || 5 || 16 (4,3,3,3,3) || - || - || - || - || - || - || - || - || (nn) := hl
|-
| ld (nn),ixy || DD/FD 00100010 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || (nn) := ixy
|-
| ld (nn),pp || ED 01pp0011 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || (nn) := pp
|-
| ld hl,(nn) || 00101010 lolololo hihihihi || 5 || 16 (4,3,3,3,3) || - || - || - || - || - || - || - || - || hl := (nn)
|-
| ld ixy,(nn) || DD/FD 00101010 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || ixy := (nn)
|-
| ld pp,(nn) || ED 01pp1011 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || pp := (nn)
|}
 
Legend: pp: 00=BC, 01=DE, 10=HL, 11=SP ; qq: 00=BC, 01=DE, 10=IX/IY, 11=SP
 
=== 16-bit Arithmetic group ===
 
Legend: pp: 00=BC, 01=DE, 10=HL, 11=SP ; qq: 00=BC, 01=DE, 10=IX/IY, 11=SP
 
{| class="wikitable" style="white-space: nowrap;"
|-
! Instruction !! Opcode !! NOPs !! Cycles !! S !! Z !! 5 !! H !! 3 !! P !! N !! C !! Effect !! Description
|-
| inc pp || 00pp0011 || 2 || 6 (6) || - || - || - || - || - || - || - || - || pp += 1 ||rowspan=2|Increment
|-
| inc qq || DD/FD 00qq0011 || 3 || 10 (4,6) || - || - || - || - || - || - || - || - || qq += 1
|-
| dec pp || 00pp1011 || 2 || 6 (6) || - || - || - || - || - || - || - || - || pp -= 1 ||rowspan=2|Decrement
|-
| dec qq || DD/FD 00qq1011 || 3 || 10 (4,6) || - || - || - || - || - || - || - || - || qq -= 1
|-
| add hl,pp || 00pp1001 || 3 || 11 (4,4,3) || - || - || + || + || + || - || 0 || + || hl += pp ||rowspan=2|Add
|-
| add ixy,qq || DD/FD 00qq1001 || 4 || 15 (4,4,4,3) || - || - || + || + || + || - || 0 || + || ixy += qq
|-
| adc hl,qq || ED 01qq1010 || 4 || 15 (4,4,4,3) || + || + || + || + || + || V || 0 || + || hl += qq + cf ||Add with Carry
|-
| sbc hl,qq || ED 01qq0010 || 4 || 15 (4,4,4,3) || + || + || + || + || + || V || 1 || + || hl -= qq + cf ||Subtract with Carry
|}
 
=== 8-bit ALU group ===
{| class="wikitable" style="white-space: nowrap;"
|-
| cp (ixy+d) || DD/FD 10111110 dddddddd || 5 || 19 (4,4,3,5,3) || + || + || X || + || X || V || 1 || + || tmp := a - (ixy+d), f5 := (ixy+d).5, f3 := (ixy+d).3
|}
 
=== 16-bit Arithmetic group ===
 
Legend: pp: 00=BC, 01=DE, 10=HL, 11=SP ; qq: 00=BC, 01=DE, 10=IX/IY, 11=SP
 
{| class="wikitable" style="white-space: nowrap;"
|-
! Instruction !! Opcode !! NOPs !! Cycles !! S !! Z !! 5 !! H !! 3 !! P !! N !! C !! Effect !! Description
|-
| inc pp || 00pp0011 || 2 || 6 (6) || - || - || - || - || - || - || - || - || pp += 1 ||rowspan=2|Increment
|-
| inc qq || DD/FD 00qq0011 || 3 || 10 (4,6) || - || - || - || - || - || - || - || - || qq += 1
|-
| dec pp || 00pp1011 || 2 || 6 (6) || - || - || - || - || - || - || - || - || pp -= 1 ||rowspan=2|Decrement
|-
| dec qq || DD/FD 00qq1011 || 3 || 10 (4,6) || - || - || - || - || - || - || - || - || qq -= 1
|-
| add hl,pp || 00pp1001 || 3 || 11 (4,4,3) || - || - || + || + || + || - || 0 || + || hl += pp ||rowspan=2|Add
|-
| add ixy,qq || DD/FD 00qq1001 || 4 || 15 (4,4,4,3) || - || - || + || + || + || - || 0 || + || ixy += qq
|-
| adc hl,qq || ED 01qq1010 || 4 || 15 (4,4,4,3) || + || + || + || + || + || V || 0 || + || hl += qq + cf ||Add with Carry
|-
| sbc hl,qq || ED 01qq0010 || 4 || 15 (4,4,4,3) || + || + || + || + || + || V || 1 || + || hl -= qq + cf ||Subtract with Carry
|}
|-
| ld a,r || ED 01011111 || 3 || 9 (4,5) || + || + || + || 0 || + || X || 0 || - || a := r, pf := iff2
|}
 
=== Load group ===
 
Legend: pp: 00=BC, 01=DE, 10=HL, 11=SP ; qq: 00=BC, 01=DE, 10=IX/IY, 11=SP
 
{| class="wikitable" style="white-space: nowrap;"
|-
! Instruction !! Opcode !! NOPs !! Cycles !! S !! Z !! 5 !! H !! 3 !! P !! N !! C !! Effect !! Description
|-
| ld r1,r2 || 01rrrsss || 1 || 4 (4) || - || - || - || - || - || - || - || - || r1 := r2 ||rowspan=15|8-bit Load
|-
| ld (hl),r || 01110rrr || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || (hl) := r
|-
| ld r,(hl) || 01rrr110 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || r := (hl)
|-
| ld s1,s2 || DD/FD 01sssttt || 2 || 8 (4,4) || - || - || - || - || - || - || - || - || s1 := s2
|-
| ld (ixy+d),r || DD/FD 01110rrr dddddddd || 5 || 19 (4,4,3,5,3) || - || - || - || - || - || - || - || - || (ixy+d) := r
|-
| ld r,(ixy+d) || DD/FD 01rrr110 dddddddd || 5 || 19 (4,4,3,5,3) || - || - || - || - || - || - || - || - || r := (ixy+d)
|-
| ld r,n || 00rrr110 nnnnnnnn || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || r := n
|-
| ld (hl),n || 00110110 nnnnnnnn || 3 || 10 (4,3,3) || - || - || - || - || - || - || - || - || (hl) := n
|-
| ld (ixy+d),n || DD/FD 00110110 dddddddd nnnnnnnn || 6 || 19 (4,4,3,5,3) || - || - || - || - || - || - || - || - || (ixy+d) := n
|-
| ld (bc),a || 00000010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || (bc) := a
|-
| ld a,(bc) || 00001010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || a := (bc)
|-
| ld (de),a || 00010010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || (de) := a
|-
| ld a,(de) || 00011010 || 2 || 7 (4,3) || - || - || - || - || - || - || - || - || a := (de)
|-
| ld (nn),a || 00110010 lolololo hihihihi || 4 || 13 (4,3,3,3) || - || - || - || - || - || - || - || - || (nn) := a
|-
| ld a,(nn) || 00111010 lolololo hihihihi || 4 || 13 (4,3,3,3) || - || - || - || - || - || - || - || - || a := (nn)
|-
| ld pp,nn || 00pp0001 lolololo hihihihi || 3 || 10 (4,3,3) || - || - || - || - || - || - || - || - || pp := nn ||rowspan=10|16-bit Load
|-
| ld qq,nn || DD/FD 00qq0001 lolololo hihihihi || 4 || 14 (4,4,3,3) || - || - || - || - || - || - || - || - || qq := nn
|-
| ld (nn),hl || 00100010 lolololo hihihihi || 5 || 16 (4,3,3,3,3) || - || - || - || - || - || - || - || - || (nn) := hl
|-
| ld (nn),ixy || DD/FD 00100010 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || (nn) := ixy
|-
| ld (nn),pp || ED 01pp0011 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || (nn) := pp
|-
| ld hl,(nn) || 00101010 lolololo hihihihi || 5 || 16 (4,3,3,3,3) || - || - || - || - || - || - || - || - || hl := (nn)
|-
| ld ixy,(nn) || DD/FD 00101010 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || ixy := (nn)
|-
| ld pp,(nn) || ED 01pp1011 lolololo hihihihi || 6 || 20 (4,4,3,3,3,3) || - || - || - || - || - || - || - || - || pp := (nn)
|}
13,173
edits