INSTRUCTION DESCRIPTIONS

 

MOVEM

Move Program Memory

MOVEM

Operation:

Assembler Syntax:

 

SP:ea

MOVE(M)

S,P:ea

 

SP:aa

MOVE(M)

S,P:aa

 

P:eaD

MOVE(M)

P:ea,D

 

P:aaD

MOVE(M)

P:aa,D

Description: Move the specified operand from/to the specified program (P) memory location. This is a powerful move instruction in that the source and destination registers S and D may be any register. All memory alterable addressing modes may be used as well as the absolute short addressing mode.

If the system stack register SSH is specified as a source operand, the system stack pointer (SP) is postdecremented by 1 after SSH has been read. If the system stack reg- ister SSH is specified as a destination operand, the system stack pointer (SP) is prein- cremented by 1 before SSH is written. This allows the system stack to be efficiently extended using software stack pointer operations.

When a 56-bit accumulator (A or B) is specified as a source operand S, the accumulator value is optionally shifted according to the scaling mode bits S0 and S1 in the system status register (SR). 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 24-bit destination, the value stored in the destination is limited to a maximum positive or negative saturation constant to mini- mize truncation error. If a 24-bit source operand is to be moved into a 16-bit destination register D, the 8 MS bits of the 24-bit source operand are discarded, and the 16 LS bits are stored in the 16-bit destination register. Limiting does not occur if an individual 24-bit accumulator register (A1, A0, B1, or B0) is specified as a source operand instead of the full 56-bit accumulator (A or B). This limiting feature allows block floating-point opera- tions to be performed with error detection since the L bit in the condition code register is latched.

When a 56-bit accumulator (A) is specified as a destination operand D, any 24-bit source data to be moved into that accumulator is automatically extended to 56 bits by sign extending the MS bit of the source operand (bit 24) and appending the source oper- and with 24 LS zeros. Whenever a 16-bit source operand S is to be moved into a 24-bit destination, the 16-bit source is loaded into the LS 16 bits of the destination operand, and the remaining 8 MS bits of the destination are zeroed. Note that for 24-bit source

A - 214

INSTRUCTION SET DETAILS

MOTOROLA

Page 483
Image 483
Motorola 24-Bit Digital Signal Processor, DSP56000 manual Move Program Memory, Operation Assembler Syntax