Changes

Jump to: navigation, search

Z80

520 bytes removed, 12 March
/* Block group */
! Instruction !! Opcode !! NOPs !! Cycles !! S !! Z !! 5 !! H !! 3 !! P !! N !! C !! Effect !! Description
|-
| ldi ldir || ED 10100000 10110000 || 6/5 || 21/16 (4,4,3,5,5)/(4,4,3,5) || rowspan=4| - || rowspan=4| - || rowspan=4| X || rowspan=4| 0 || rowspan=4| X || rowspan=4| C || rowspan=4| 0 || rowspan=4| - || ldi, if bc <> 0 then pc -= 2 || rowspan=4|Block Load|-| lddr || ED 10111000 || 6/5 || 21/16 (4,4,3,5,5)/(4,4,3,5) || ldd, if bc <> 0 then pc -= 2|-| ldi || ED 10100000 || 5 || 16 (4,4,3,5) || tmp := (hl), (de) := tmp, de += 1, hl += 1,
bc -= 1, f5 := [tmp + a].1, f3 := [tmp + a].3
|| Load and Increment
|-
| ldd || ED 10101000 || 5 || 16 (4,4,3,5) || - || - || X || 0 || X || C || 0 || - || tmp := (hl), (de) := tmp, de -= 1, hl -= 1,
bc -= 1, f5 := [tmp + a].1, f3 := [tmp + a].3
|| Load and Decrement
|-
| ldir cpir || ED 10110000 10110001 || 6/5 4 || 21/16 (4,4,3,5,5)/(4,4,3,5) || - rowspan=4|+ | - |rowspan=4|+ || rowspan=4| X || 0 rowspan=4|+ || rowspan=4| X || rowspan=4| C || 0 rowspan=4|1 || rowspan=4| - || ldicpi, if bc <> 0 and nz then pc -= 2 || Load and Increment, Repeatrowspan=4| Block Compare
|-
| lddr cpdr || ED 10111000 10111001 || 6/5 4 || 21/16 (4,4,3,5,5)/(4,4,3,5) || - || - || X || 0 || X || C || 0 || - || lddcpd, if bc <> 0 and nz then pc -= 2 || Load and Decrement, Repeat
|-
| cpi || ED 10100001 || 4 || 16 (4,4,3,5)|| + || + || X || + || X || C || 1 || - || tmp := a - (hl) => flags, bc -= 1, hl += 1,
f5 := [tmp - hf].1, f3 = [tmp - hf].3
|| Compare and Increment
|-
| cpd || ED 10101001 || 4 || 16 (4,4,3,5) || + || + || X || + || X || C || 1 || - || tmp := a - (hl) => flags, bc -= 1, hl -= 1,
f5 := [tmp - hf].1, f3 = [tmp - hf].3
|| Compare and Decrement
|-
| cpir inir || ED 10110001 10110010 || 6/4 5 || 21/16 (4,5,4,3,5,5)/(4,5,4,3,5) || rowspan=4| + || rowspan=4| + || rowspan=4|+ || rowspan=4| X || rowspan=4| + || rowspan=4| X || C rowspan=4|X | 1 |rowspan=4| - X || cpiini, if bc b <> 0 and nz then pc -= 2 || Compare and Increment, Repeatrowspan=4|Block I/O Input
|-
| cpdr indr || ED 10111001 10111010 || 6/4 5 || 21/16 (4,5,4,3,5,5)/(4,5,4,3,5) || + || + || X || + || X || C || 1 || - || cpdind, if bc b <> 0 and nz then pc -= 2 || Compare and Decrement, Repeat
|-
| ini || ED 10100010 || 5 || 16 (4,5,4,3) || + || + || + || X || + || X || X || X || tmp := ((c)), (hl) := tmp, hl += 1,
b -= 1 => flags, nf := tmp.7,
hf := cf := tmp2 > 255
|| I/O Input and Increment
|-
| ind || ED 10101010 || 5 || 16 (4,5,4,3) || + || + || + || X || + || X || X || X || tmp := ((c)), (hl) := tmp, hl -= 1,
b -= 1 => flags, nf := tmp.7,
hf := cf := tmp2 > 255
|| I/O Input and Decrement
|-
| inir otir || ED 10110010 10110011 || 6/5 || 21/16 (4,5,4,3,4,5)/(4,5,4,3,4) || rowspan=4| + || rowspan=4| + || rowspan=4| + || rowspan=4| X || rowspan=4| + || rowspan=4| X || rowspan=4| X || rowspan=4| X || iniouti, if b <> 0 then pc -= 2 || rowspan=4|Block I/O Input and Increment, RepeatOutput
|-
| indr otdr || ED 10111010 10111011 || 6/5 || 21/16 (4,5,3,4,3,5)/(4,5,3,4,3) || + || + || + || X || + || X || X || X || indoutd, if b <> 0 then pc -= 2 || I/O Input and Decrement, Repeat
|-
| outi || ED 10100011 || 5 || 16 (4,5,3,4) || + || + || + || X || + || X || X || X || tmp := (hl), ((c)) := tmp, hl += 1,
b -= 1 => flags, nf := tmp.7, tmp2 = tmp + l,
hf := cf := tmp2 > 255
|| I/O Output and Increment
|-
| outd || ED 10101011 || 5 || 16 (4,5,3,4) || + || + || + || X || + || X || X || X || tmp := (hl), ((c)) := tmp, hl -= 1,
b -= 1 => flags, nf := tmp.7, tmp2 = tmp + l,
hf := cf := tmp2 > 255
|| I/O Output and Decrement
|-
| otir || ED 10110011 || 6/5 || 21/16 (4,5,3,4,5)/(4,5,3,4) || + || + || + || X || + || X || X || X || outi, if b <> 0 then pc -= 2 || I/O Output and Increment, Repeat
|-
| otdr || ED 10111011 || 6/5 || 21/16 (4,5,3,4,5)/(4,5,3,4) || + || + || + || X || + || X || X || X || outd, if b <> 0 then pc -= 2 || I/O Output and Decrement, Repeat
|}
13,173
edits