EasyManua.ls Logo

Rabbit 2000 - Instruction Prefixes; Block Move Instructions

Rabbit 2000
230 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
184 Rabbit 2000 Microprocessor
SLA r 4 fr * * L * r = {r[6,0],0}; CY = r[7]
SRA (HL) 10 f b * * L * (HL) = {(HL)[7],(HL)[7,1]};
CY = (HL)[0]
SRA (IX+d) 13 f b * * L * (IX+d) = {(IX+d)[7],
(IX+d)[7,1]}; CY = (IX+d)[0]
SRA (IY+d) 13 f b * * L * (IY+d) = {(IY+d)[7],
(IY+d)[7,1]}; CY = (IY+d)[0]
SRA r 4 fr * * L * r = {r[7],r[7,1]}; CY = r[0]
SRL (HL) 10 f b * * L * (HL) = {0,(HL)[7,1]};
CY = (HL)[0]
SRL (IX+d) 13 f b * * L * (IX+d) = {0,(IX+d)[7,1]};
CY = (IX+d)[0]
SRL (IY+d) 13 f b * * L * (IY+d) = {0,(IY+d)[7,1]};
CY = (IY+d)[0]
SRL r 4 fr * * L * r = {0,r[7,1]};
CY = r[0]
18.15 Instruction Prefixes
Instruction clk A I S Z V C Operation
ALTD 2 - - - - alternate register destinatIn
for next Instruction
IOE 2 - - - - I/O external prefix
IOI 2 - - - - I/O internal prefix
18.16 Block Move Instructions
Instruction clk A I S Z V C Operation
LDD 10 d - - * - (DE) = (HL); BC = BC-1;
DE = DE-1; HL = HL-1
LDDR 6+7i d - - * - if {BC != 0} repeat:
LDI 10 d - - * - (DE) = (HL); BC = BC-1;
DE = DE+1; HL = HL+1
LDIR 6+7i d - - * - if {BC != 0} repeat:
If any of the block move instructions are prefixed by an I/O prefix, the destination will be
in the specified I/O space. Add 1 clock for each iteration for the prefix if the prefix is IOI
(internal I/O). If the prefix is IOE, add 2 clocks plus the number of I/O wait states enabled.
The V flag is set when BC transitions from 1 to 0. If the V flag is not set another step is
performed for the repeating versions of the instructions. Interrupts can occur between dif-
ferent repeats, but not within an iteration equivalent to LDD or LDI. Return from the inter-
rupt is to the first byte of the instruction which is the I/O prefix byte if there is one.

Table of Contents

Other manuals for Rabbit 2000