Changes

Jump to: navigation, search

Z80

227 bytes added, 29 April
/* ROT group */
{| class="wikitable" style="white-space: nowrap;"
|-
! Instruction !! Opcode !! Hexcode !! NOPs !! Cycles !! M-Cycle Sequence !! S !! Z !! 5 !! H !! 3 !! P !! N !! C !! Effect !! Description
|-
| rlca || 00000111 || 07 || 1 || 4 (4) || M1 || rowspan=4|- || rowspan=4|- || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|- || rowspan=4|0 || rowspan=4|X || cf := a.7, a := [a << 1] + cf ||rowspan=4|Fast Rotate
|-
| rrca || 00001111 || 0F || 1 || 4 (4) || M1 || cf := a.0, a := [a >> 1] + [cf << 7]
|-
| rla || 00010111 || 17 || 1 || 4 (4) || M1 || ocf := cf, cf := a.7, a := [a << 1] + ocf
|-
| rra || 00011111 || 1F || 1 || 4 (4) || M1 || ocf := cf, cf := a.0, a := [a >> 1] + [ocf << 7]
|-
| rl rlc r || 00000rrr || CB 00010rrr 00-05/07 || 2 || 8 (4,4) || M1, M1 || rowspan=4|+ || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || ocf := cf, cf := r.7, r := [r << 1] + ocf cf ||rowspan=4|Rotate LeftCarry
|-
| rl rlc (hl) || 00000110 || CB 00010110 06 || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || ocf := cf, cf := (hl).7, (hl) := [(hl) << 1] + ocfcf
|-
| rl rlc (ixy+d) || 00000110 || DD/FD CB dddddddd 00010110 dd 06 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || ocf := cf, cf := (ixy+d).7, (ixy+d) := [(ixy+d) << 1] + ocfcf
|-
| rl rlc (ixy+d)->r || 00000rrr || DD/FD CB dddddddd 00010rrr dd 00-05/07 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || ocf := cf, cf := (ixy+d).7, (ixy+d) := r := [(ixy+d) << 1] + ocfcf
|-
| rlc rrc r || 00001rrr || CB 00000rrr 08-0D/0F || 2 || 8 (4,4) || M1, M1 || rowspan=4|+ || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || cf := r.70, r := [r << >> 1] + [cf << 7] ||rowspan=4|Rotate Left Right Carry
|-
| rlc rrc (hl) || 00001110 || CB 00000110 0E || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || cf := (hl).70, (hl) := [(hl) << >> 1] + [cf<< 7]
|-
| rlc rrc (ixy+d) || 00001110 || DD/FD CB dddddddd 00000110 dd 0E || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).70, (ixy+d) := [(ixy+d) << >> 1] + [cf<< 7]
|-
| rlc rrc (ixy+d)->r || 00001rrr || DD/FD CB dddddddd 00000rrr dd 08-0D/0F || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).70, (ixy+d) := r := [(ixy+d) << >> 1] + [cf<< 7]
|-
| rr rl r || 00010rrr || CB 00011rrr 10-15/17 || 2 || 8 (4,4) || M1, M1 || rowspan=4|+ || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || ocf := cf, cf := r.07, r := [r >> << 1] + [ocf << 7] ||rowspan=4|Rotate RightLeft
|-
| rr rl (hl) || 00010110 || CB 00011110 16 || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || ocf := cf, cf := (hl).07, (hl) := [(hl) >> << 1] + [ocf << 7]
|-
| rr rl (ixy+d) || 00010110 || DD/FD CB dddddddd 00011110 dd 16 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || ocf := cf, cf := (ixy+d).07, (ixy+d) := [(ixy+d) >> << 1] + [ocf << 7]
|-
| rr rl (ixy+d)->r || 00010rrr || DD/FD CB dddddddd 00011rrr dd 10-15/17 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || ocf := cf, cf := (ixy+d).07, (ixy+d) := r := [(ixy+d) >> << 1] + [ocf << 7]
|-
| rrc rr r || 00011rrr || CB 00001rrr 18-1D/1F || 2 || 8 (4,4) || M1, M1 || rowspan=4|+ || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || ocf := cf, cf := r.0, r := [r >> 1] + [cf ocf << 7] ||rowspan=4|Rotate Right Carry
|-
| rrc rr (hl) || 00011110 || CB 00001110 1E || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || ocf := cf, cf := (hl).0, (hl) := [(hl) >> 1] + [cf ocf << 7]
|-
| rrc rr (ixy+d) || 00011110 || DD/FD CB dddddddd 00001110 dd 1E || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || ocf := cf, cf := (ixy+d).0, (ixy+d) := [(ixy+d) >> 1] + [cf ocf << 7]
|-
| rrc rr (ixy+d)->r || 00011rrr || DD/FD CB dddddddd 00001rrr dd 18-1D/1F || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || ocf := cf, cf := (ixy+d).0, (ixy+d) := r := [(ixy+d) >> 1] + [cf ocf << 7]
|-
| sla r || CB 00100rrr || CB 20-25/27 || 2 || 8 (4,4) || M1, M1 || rowspan=4|+ || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || cf := r.7, r := r << 1 ||rowspan=4|Shift Left Arithmetic
|-
| sla (hl) || CB 00100110 || CB 26 || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || cf := (hl).7, (hl) := (hl) << 1
|-
| sla (ixy+d) || 00100110 || DD/FD CB dddddddd 00100110 dd 26 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).7, (ixy+d) := (ixy+d) << 1
|-
| sla (ixy+d)->r || 00100rrr || DD/FD CB dddddddd 00100rrr dd 20-25/27 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).7, (ixy+d) := r := (ixy+d) << 1
|-
| sra r || CB 00101rrr || CB 28-2D/2F || 2 || 8 (4,4) || M1, M1 || rowspan=4|+ || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || cf := r.0, r := r >> 1, r.7 := r.6 ||rowspan=4|Shift Right Arithmetic
|-
| sra (hl) || CB 00101110 || CB 2E || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || cf := (hl).0, (hl) := (hl) >> 1, (hl).7 := (hl).6
|-
| sra (ixy+d) || 00101110 || DD/FD CB dddddddd 00101110 dd 2E || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).0, (ixy+d) := (ixy+d) >> 1, (ixy+d).7 := (ixy+d).6
|-
| sra (ixy+d)->r || 00101rrr || DD/FD CB dddddddd 00101rrr dd 28-2D/2F || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).0, tmp := (ixy+d) >> 1, tmp.7 := tmp.6, (ixy+d) := r := tmp
|-
| sll r || CB 00110rrr || CB 30-35/37 || 2 || 8 (4,4) || M1, M1 || rowspan=4|+ || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || cf := r.7, r := [r << 1] + 1 ||rowspan=4|Shift Left Logical
|-
| sll (hl) || CB 00110110 || CB 36 || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || cf := (hl).7, (hl) := [(hl) << 1] + 1
|-
| sll (ixy+d) || 00110110 || DD/FD CB dddddddd 00110110 dd 36 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).7, (ixy+d) := [(ixy+d) << 1] + 1
|-
| sll (ixy+d)->r || 00110rrr || DD/FD CB dddddddd 00110rrr dd 30-35/37 || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).7, (ixy+d) := r := [(ixy+d) << 1] + 1
|-
| srl r || CB 00111rrr || CB 38-3D/3F || 2 || 8 (4,4) || M1, M1 || rowspan=4|0 || rowspan=4|+ || rowspan=4|+ || rowspan=4|0 || rowspan=4|+ || rowspan=4|P || rowspan=4|0 || rowspan=4|X || cf := r.0, r := r >> 1 ||rowspan=4|Shift Right Logical
|-
| srl (hl) || CB 00111110 || CB 3E || 4 || 15 (4,4,4,3) || M1, M1, MR, INT(1), MW || cf := (hl).0, (hl) := (hl) >> 1
|-
| srl (ixy+d) || 00111110 || DD/FD CB dddddddd 00111110 dd 3E || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).0, (ixy+d) := (ixy+d) >> 1
|-
| srl (ixy+d)->r || 00111rrr || DD/FD CB dddddddd 00111rrr dd 38-3D/3F || 7 || 23 (4,4,3,5,4,3) || M1, M1, MRd, MRo, INT(2), MR, INT(1), MW || cf := (ixy+d).0, (ixy+d) := r := (ixy+d) >> 1
|}
13,173
edits