62
Rabbit 2000/3000 Microprocessor
Description
•
LDD:
Loads the memory location whose address is in word register DE with the data at the
address in word register HL. Then it decrements the data in word registers BC, DE, and HL.
•
LDDR:
While the data in the register pair BC does not equal 0 then the memory location whose
address is in word register DE is loaded with the data at the address in word register HL. Then it
decrements the data in word registers BC, DE, and HL. The instruction then repeats until BC
equals zero.
•
LDI:
Loads the memory location whose address is in word register DE with the data at the
address in word register HL. Then the data in word register BC is decremented and the data in
word registers DE and HL is incremented.
•
LDIR:
While the data in the register pair BC does not equal 0 then the memory location whose
address is in word register DE is loaded with the data at the address in word register HL. Then
the data in word register BC is decremented and the data in word registers DE and HL are incre-
mented. The instruction then repeats until BC equals zero.
If any of these block move instructions are prefixed by IOI or IOE, 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 cleared when BC transitions from 1 to 0. If
the V flag is not cleared another step is performed for the repeating versions of the instructions. Interrupts can
occur between different 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
.
LDD
LDDR
LDI
LDIR
Opcode
Instruction
Clocks
Operation
ED A8
LDD
10 (2,2,1,2,3)
(DE) = (HL); BC = BC - 1;
DE = DE - 1; HL = HL - 1
ED B8
LDDR
6 + 7i (2,2,1,(2,3,2)i,1)
repeat:
(DE) = (HL); BC = BC - 1;
DE = DE - 1; HL = HL - 1
until { BC == 0 }
ED A0
LDI
10 (2,2,1,2,3)
(DE) = (HL); BC = BC - 1;
DE = DE + 1; HL = HL + 1
ED B0
LDIR
6 + 7i (2,2,1,(2,3,2)i,1)
repeat:
(DE) = (HL); BC = BC - 1;
DE = DE + 1; HL = HL + 1
until { BC == 0 }
Flags
ALTD
I/O
S
Z
L/V
C
F
R
SP
S
D
-
-
•
-
•
Summary of Contents for 2000
Page 2: ...ii Rabbit 2000 3000 Microprocessor...
Page 4: ...iv Rabbit 2000 Microprocessor...
Page 16: ...12 Rabbit 2000 3000 Microprocessor...
Page 112: ...108 Rabbit 2000 3000 Microprocessor...
Page 120: ...ii Rabbit 2000 3000 Microprocessor...