![](http://pdfasset.owneriq.net/b/06/b0697e36-3163-401f-93a6-b5888e5c0ff8/b0697e36-3163-401f-93a6-b5888e5c0ff8-bg12f.png)
294 Rabbit 3000 Microprocessor
B.1.9.2 New Block Copy Opcodes
The LDxR family of block move opcodes has been expanded. In the Rabbit 3000 proces-
sor, block copy operations could only be done between memory addresses, or from mem-
ory to an I/O address. In addition, the destination I/O address would increment (or
decrement if using LDDR) after each byte, making the block copy opcodes effectively
useless for repeated reads or writes to a peripheral (for example, a device on the external
I/P bus).
Six new block copy opcodes were added to the Rabbit 3000 revision. These opcodes can
copy from an I/O address as well as to one, and either the source or destination address can
remain fixed instead of changing after each byte. The new opcodes are described in
Table B-19.
Table B-19. Rabbit 3000 Revision Block Copy Opcode Effects
Opcode
Source
Address
Change
Destination
Address
Change
IOI/IOE
Affects
LDDR
- - destination
LDIR
+ + destination
LDDSR
- none destination
LDISR
+ none destination
LSDR
--source
LSIR
++source
LSDDR
none - source
LSIDR
none + source