dsp56800 Freescale Semiconductor, Inc, dsp56800 Datasheet - Page 345

no-image

dsp56800

Manufacturer Part Number
dsp56800
Description
16-bit Digital Signal Controllers
Manufacturer
Freescale Semiconductor, Inc
Datasheet
MOVE(M)
Operation:
P:<ea> → D
S→ P:<ea>
Description: Move the specified register from or to the specified program memory location. The source register (S)
Example:
Explanation of Example:
Freescale Semiconductor
P:$0077
Before Execution
R2
A2
A
and destination registers (D) are data ALU registers.
When a 36-bit accumulator (A or B) is specified as a source operand, there is a possibility that the data
may be limited. If the data out of the shifter indicates that the accumulator extension register is in use,
and the data is to be moved into a 16-bit destination, the value stored in the destination is limited to a
maximum positive or negative saturation constant to minimize truncation error. Limiting does not oc-
cur if an individual 16-bit accumulator register (A1, A0, B1, or B0) is specified as a source operand
instead of the full 36-bit accumulator (A or B). This limiting feature allows block floating-point oper-
ations to be performed with error detection since the L bit in the CCR is latched (that is, sticky).
When a 36-bit accumulator (A or B) is specified as a destination operand, any 16-bit source data to be
moved into that accumulator is automatically extended to 36 bits by sign extending the MSB of the
source operand (bit 15) and appending the source operand with 16 LS zeros. The automatic sign ex-
tension and zeroing features may be circumvented by specifying the destination register to be one of
the individual 16-bit accumulator registers (A1 or B1).
MOVEM
Prior to execution, the 36-bit A accumulator contains the value $A:1234:5678, R2 contains the value
$0077, the N register contains the value $0003, and the 16-bit program memory location P:(R2) con-
tains the value $0116. Execution of the MOVEM instruction moves the 16-bit program memory loca-
tion P:(R2) into the 36-bit A accumulator. R2 is then post-incremented by N.
$0077
1234
0116
A1
Move Program Memory
5678
A0
P:(R2)+N,A
Instruction Set Details
Assembler Syntax:
MOVEM
MOVEM
P:$0077
After Execution
R2
A2
0
P:<ea>,D
S,P:<ea>
; move P:(R2) into A,
;
$007A
0116
0116
update R2 with N
A1
MOVE(M)
0000
A0
A-115

Related parts for dsp56800