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

 

Source

Destination

IOI/IOE

Opcode

Address

Address

Affects

 

Change

Change

 

 

 

 

 

 

LDDR

-

-

destination

 

 

 

 

LDIR

+

+

destination

 

 

 

 

LDDSR

-

none

destination

 

 

 

 

LDISR

+

none

destination

 

 

 

 

LSDR

-

-

source

 

 

 

 

LSIR

+

+

source

 

 

 

 

LSDDR

none

-

source

 

 

 

 

LSIDR

none

+

source

 

 

 

 

294

Rabbit 3000 Microprocessor

Page 303
Image 303
Jameco Electronics 2000 manual Table B-19. Rabbit 3000 Revision Block Copy Opcode Effects, New Block Copy Opcodes, Ioi/Ioe