Changes

Jump to: navigation, search

Z80

61 bytes added, 10 March
/* Z80 Instructions */
|-
| cp (I+D) || 11i11101 10111110 dddddddd || 5 || 19 (4,4,3,5,3) || + || + || X || + || X || V || 1 || + || tmp := a - (I+D), f5 := (I+D).5, f3 := (I+D).3
|}
 
=== ROT group ===
 
{| class="wikitable" style="white-space: nowrap;"
|-
! Instruction !! Opcode !! NOPs !! Cycles !! S !! Z !! 5 !! H !! 3 !! P !! N !! C !! Effect !! Description
|-
| rla || 00010111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || ocf := cf, cf := a.7, a := [a << 1] + ocf ||rowspan=5|Rotate Left
|-
| rl R || 11001011 00010rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := R.7, R := [R << 1] + ocf
|-
| rl (hl) || 11001011 00010110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (hl).7, (hl) := [(hl) << 1] + ocf
|-
| rl (I+D) || 11i11101 11001011 dddddddd 00010110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).7, (I+D) := [(I+D) << 1] + ocf
|-
| rl (I+D)->R || 11i11101 11001011 dddddddd 00010rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).7, (I+D) := R := [(I+D) << 1] + ocf
|-
| rlca || 00000111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || cf := a.7, a := [a << 1] + cf ||rowspan=5|Rotate Left Carry
|-
| rlc R || 11001011 00000rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := [R << 1] + cf
|-
| rlc (hl) || 11001011 00000110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := [(hl) << 1] + cf
|-
| rlc (I+D) || 11i11101 11001011 dddddddd 00000110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := [(I+D) << 1] + cf
|-
| rlc (I+D)->R || 11i11101 11001011 dddddddd 00000rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := [(I+D) << 1] + cf
|-
| rra || 00011111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || ocf := cf, cf := a.0, a := [a >> 1] + [ocf << 7] ||rowspan=5|Rotate Right
|-
| rr R || 11001011 00011rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := R.0, R := [R >> 1] + [ocf << 7]
|-
| rr (hl) || 11001011 00011110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (hl).0, (hl) := [(hl) >> 1] + [ocf << 7]
|-
| rr (I+D) || 11i11101 11001011 dddddddd 00011110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).0, (I+D) := [(I+D) >> 1] + [ocf << 7]
|-
| rr (I+D)->R || 11i11101 11001011 dddddddd 00011rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).0, (I+D) := R := [(I+D) >> 1] + [ocf << 7]
|-
| rrca || 00001111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || cf := a.0, a := [a >> 1] + [cf << 7] ||rowspan=5|Rotate Right Carry
|-
| rrc R || 11001011 00001rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.0, R := [R >> 1] + [cf << 7]
|-
| rrc (hl) || 11001011 00001110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := [(hl) >> 1] + [cf << 7]
|-
| rrc (I+D) || 11i11101 11001011 dddddddd 00001110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := [(I+D) >> 1] + [cf << 7]
|-
| rrc (I+D)->R || 11i11101 11001011 dddddddd 00001rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := R := [(I+D) >> 1] + [cf << 7]
|-
| sla R || 11001011 00100rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := R << 1 ||rowspan=4|Shift Left Arithmetic
|-
| sla (hl) || 11001011 00100110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := (hl) << 1
|-
| sla (I+D) || 11i11101 11001011 dddddddd 00100110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := (I+D) << 1
|-
| sla (I+D)->R || 11i11101 11001011 dddddddd 00100rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := (I+D) << 1
|-
| sra R || 11001011 00101rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.0, R := R >> 1, R.7 := R.6 ||rowspan=4|Shift Right Arithmetic
|-
| sra (hl) || 11001011 00101110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := (hl) >> 1, (hl).7 := (hl).6
|-
| sra (I+D) || 11i11101 11001011 dddddddd 00101110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0,
(I+D) := (I+D) >> 1, (I+D).7 := (I+D).6
|-
| sra (I+D)->R || 11i11101 11001011 dddddddd 00101rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0,
tmp := (I+D) >> 1, tmp.7 := tmp.6,
 
(I+D) := R := tmp
|-
| sll R || 11001011 00110rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := [R << 1] + 1 ||rowspan=4|Shift Left Logical
|-
| sll (hl) || 11001011 00110110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := [(hl) << 1] + 1
|-
| sll (I+D) || 11i11101 11001011 dddddddd 00110110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := [(I+D) << 1] + 1
|-
| sll (I+D)->R || 11i11101 11001011 dddddddd 00110rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := [(I+D) << 1] + 1
|-
| srl R || 11001011 00111rrr || 2 || 8 (4,4) || 0 || + || + || 0 || + || P || 0 || X || cf := R.0, R := R >> 1 ||rowspan=4|Shift Right Logical
|-
| srl (hl) || 11001011 00111110 || 4 || 15 (4,4,3) || 0 || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := (hl) >> 1
|-
| srl (I+D) || 11i11101 11001011 dddddddd 00111110 || 7 || 23 (4,4,3,5,4,3) || 0 || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := (I+D) >> 1
|-
| srl (I+D)->R || 11i11101 11001011 dddddddd 00111rrr || 7 || 23 (4,4,3,5,4,3) || 0 || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := R := (I+D) >> 1
|}
|-
| retn || 11101101 01***101 || 4 || 14 (4,4,3,3) || - || - || - || - || - || - || - || - || pc := (sp), sp += 2, iff1 := iff2 || Return from NMI
|-
| rla || 00010111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || ocf := cf, cf := a.7, a := [a << 1] + ocf || Rotate Left Accumulator
|-
| rl R || 11001011 00010rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := R.7, R := [R << 1] + ocf ||rowspan=4|Rotate Left
|-
| rl (hl) || 11001011 00010110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (hl).7, (hl) := [(hl) << 1] + ocf
|-
| rl (I+D) || 11i11101 11001011 dddddddd 00010110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).7, (I+D) := [(I+D) << 1] + ocf
|-
| rl (I+D)->R || 11i11101 11001011 dddddddd 00010rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).7, (I+D) := R := [(I+D) << 1] + ocf
|-
| rlca || 00000111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || cf := a.7, a := [a << 1] + cf || Rotate Left Carry Accumulator
|-
| rlc R || 11001011 00000rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := [R << 1] + cf ||rowspan=4|Rotate Left Carry
|-
| rlc (hl) || 11001011 00000110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := [(hl) << 1] + cf
|-
| rlc (I+D) || 11i11101 11001011 dddddddd 00000110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := [(I+D) << 1] + cf
|-
| rlc (I+D)->R || 11i11101 11001011 dddddddd 00000rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := [(I+D) << 1] + cf
|-
| rld || 11101101 01101111 || 5 || 18 (4,4,3,4,3) || + || + || + || 0 || + || P || 0 || - || tmp := [(hl) << 4] + [a AND 0x0f], (hl) := tmp,
a := [a AND 0xf0] + [tmp >> 8] => flags
|| Rotate Left Decimal
|-
| rra || 00011111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || ocf := cf, cf := a.0, a := [a >> 1] + [ocf << 7] || Rotate Right Accumulator
|-
| rr R || 11001011 00011rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := R.0, R := [R >> 1] + [ocf << 7] ||rowspan=4|Rotate Right
|-
| rr (hl) || 11001011 00011110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (hl).0, (hl) := [(hl) >> 1] + [ocf << 7]
|-
| rr (I+D) || 11i11101 11001011 dddddddd 00011110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).0, (I+D) := [(I+D) >> 1] + [ocf << 7]
|-
| rr (I+D)->R || 11i11101 11001011 dddddddd 00011rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).0, (I+D) := R := [(I+D) >> 1] + [ocf << 7]
|-
| rrca || 00001111 || 1 || 4 (4) || - || - || + || 0 || + || - || 0 || X || cf := a.0, a := [a >> 1] + [cf << 7] || Rotate Right Carry Accumulator
|-
| rrc R || 11001011 00001rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.0, R := [R >> 1] + [cf << 7] ||rowspan=4|Rotate Right Carry
|-
| rrc (hl) || 11001011 00001110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := [(hl) >> 1] + [cf << 7]
|-
| rrc (I+D) || 11i11101 11001011 dddddddd 00001110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := [(I+D) >> 1] + [cf << 7]
|-
| rrc (I+D)->R || 11i11101 11001011 dddddddd 00001rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := R := [(I+D) >> 1] + [cf << 7]
|-
| rrd || 11101101 01100111 || 5 || 18 (4,4,3,4,3) || + || + || + || 0 || + || P || 0 || - || tmp := (hl), (hl) := [tmp >> 4] + [[a AND 0x0f] << 4],
|-
| set B,(I+D)->R || 11i11101 11001011 dddddddd 11bbbrrr || 7 || 23 (4,4,3,5,4,3) || - || - || - || - || - || - || - || - || (I+D) := R := (I+D) OR [1 << B]
|-
| sla R || 11001011 00100rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := R << 1 ||rowspan=4|Shift Left Arithmetic
|-
| sla (hl) || 11001011 00100110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := (hl) << 1
|-
| sla (I+D) || 11i11101 11001011 dddddddd 00100110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := (I+D) << 1
|-
| sla (I+D)->R || 11i11101 11001011 dddddddd 00100rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := (I+D) << 1
|-
| sra R || 11001011 00101rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.0, R := R >> 1, R.7 := R.6 ||rowspan=4|Shift Right Arithmetic
|-
| sra (hl) || 11001011 00101110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := (hl) >> 1, (hl).7 := (hl).6
|-
| sra (I+D) || 11i11101 11001011 dddddddd 00101110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0,
(I+D) := (I+D) >> 1, (I+D).7 := (I+D).6
|-
| sra (I+D)->R || 11i11101 11001011 dddddddd 00101rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0,
tmp := (I+D) >> 1, tmp.7 := tmp.6,
 
(I+D) := R := tmp
|-
| sll R || 11001011 00110rrr || 2 || 8 (4,4) || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := [R << 1] + 1 ||rowspan=4|Shift Left Logical
|-
| sll (hl) || 11001011 00110110 || 4 || 15 (4,4,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := [(hl) << 1] + 1
|-
| sll (I+D) || 11i11101 11001011 dddddddd 00110110 || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := [(I+D) << 1] + 1
|-
| sll (I+D)->R || 11i11101 11001011 dddddddd 00110rrr || 7 || 23 (4,4,3,5,4,3) || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := [(I+D) << 1] + 1
|-
| srl R || 11001011 00111rrr || 2 || 8 (4,4) || 0 || + || + || 0 || + || P || 0 || X || cf := R.0, R := R >> 1 ||rowspan=4|Shift Right Logical
|-
| srl (hl) || 11001011 00111110 || 4 || 15 (4,4,3) || 0 || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := (hl) >> 1
|-
| srl (I+D) || 11i11101 11001011 dddddddd 00111110 || 7 || 23 (4,4,3,5,4,3) || 0 || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := (I+D) >> 1
|-
| srl (I+D)->R || 11i11101 11001011 dddddddd 00111rrr || 7 || 23 (4,4,3,5,4,3) || 0 || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := R := (I+D) >> 1
|}
13,173
edits