Rabbit 3000A Instruction
Instruction Reference Manual
149
Description
While the data in the BC does not equal 0, then:
•
the data at the address in IY is multiplied by the data in DE;
•
the data in alternate register DE’ is added to that value;
•
the C flag is added to that value; and
•
this value is added to the data at the address in IX (for UMA) or
this value is subtracted from the data at the address in IX (for UMS).
This results in a 24-bit value. The lowest eight bits of this value are stored memory at the address in HL, and
the upper 16 bits are stored in the alternate register DE’. If The data in IX, IY, and HL are then incremented,
and the data in BC is decremented. The instruction then repeats until BC equals zero. Interrupts can occur
between different repeats, but not within an iteration.
These instructions are implemented in the Rabbit 3000A.
UMA
UMS
Opcode
Instruction
Clocks
Operation
ED C0
UMA
8+8i (2,2,2,
(2,2,3,1)i,2)
[CY:DE’:(HL)} =
(IX) + [(IY)*DE+DE’+CY];
BC = BC - 1; IX = IX + 1;
IY = IY + 1; HL = HL + 1;
repeat while BC != 0
ED C8
UMS
8+8i (2,2,2,
(2,2,3,1)i,2)
[CY:DE’:(HL)} =
(IX) - [(IY)*DE+DE’+CY];
BC = BC - 1; IX = IX + 1;
IY = IY + 1; HL = HL + 1;
repeat while 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 164: ...160 Instruction Reference Manual...