Move.l, Appendix , “move.l, Move long register extensions (agu) – Freescale Semiconductor StarCore SC140 User Manual
Page 589: Description, Operation assembler syntax

MOVE.L
SC140 DSP Core Reference Manual
A-275
MOVE.L
Move Long Register Extensions (AGU)
MOVE.L
Description
These six operations save (restore) the extension bits and Ln bit of data registers to (from) memory. One of
the operations writes to memory the Ln bit and extension bits of an even and odd pair of registers, as
shown below. Another operation reads bits 8:0 from memory to the extension bits and Ln bit of an even
register. Another operation reads bits 24:16 to the extension bits and Ln bit of an odd register. The memory
address can be specified as an offset to the stack pointer, or as an absolute address.
Writes to memory are done from the even/odd pair of registers. Reads from memory are done to a single
register. An extension saved to memory from an even numbered register must be restored to an even
register, likewise for odd registers.
The address of the access must be long word-aligned.
Note:
Moves of extensions into data registers restore the corresponding limit tag bit (Ln bit) in the
destination register.
Operation
Assembler Syntax
((SP+s15)[8:0])
→ De.E
MOVE.L (SP+s15),De.E {–2
14
≤ s15 < 2
14
,L}
Da.E:Db.E
→ (SP+s15)
MOVE.L Da.E:Db.E,(SP+s15) {–2
14
≤ s15 < 2
14
,L}
((SP+s15)[24:16])
→ Do.E
MOVE.L (SP+s15),Do.E {–2
14
≤ s15 < 2
14
,L}
(aa[8:0])
→ De.E
MOVE.L (a32),De.E {0
≤ a32 < 2
32
,L}
Da.E:Db.E
→ (aa)
MOVE.L Da.E:Db.E,(a32) {0
≤ a32 < 2
32
,L}
(aa[24:16])
→ Do.E
MOVE.L (a32),Do.E {0
≤ a32 < 2
32
,L}
MOVE.L (SP+s15),De.E
Reads from a memory address pointed to by the stack pointer and a signed 15-bit offset into the extension
and Ln bit of an even numbered data register.
MOVE.L Da.E:Db.E,(SP+s15)
39
0
16
32
0
16
31
24
8
0
0
EXTENSION
EXTENSION
Da EVEN
Db ODD
La +
Lb +
MEMORY LONG WORD
Da.E
EVEN
Db.E
ODD