MOVL ACC,P << PM
6-205
MOVL ACC,P << PM Load the Accumulator With Shifted P
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
MOVL ACC,P << PM 0001 0110 1010 1100 X − 1
Note: This instruction is an alias for the ”MOVP T,loc16” operation with “loc16 = @T” addressing mode.
Operands ACC Accumulator register
P Product register
<< PM Product shift mode
Description Load the ACC register with the content of the P register shifted as specified
by the product shift mode (PM):
ACC = P << PM;
Flags and
Modes
N After the load, the N flag is set if bit 31 of the ACC is 1, else N is cleared.
Z After the load, the Z flag is set if the ACC is zero, else Z is cleared.
PM The value in the PM bits sets the shift mode for the output operation from the
product register. If the product shift value is positive (logical left shift
operation), then the low bits are zero filled. If the product shift value is
negative (arithmetic right shift operation), the upper bits are sign extended.
Repeat This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
Example
; Calculate: Y = Y + (M*X >> 4)
; Y is a 32-bit value, M and X are 16-bit values
SPM −4 ; Set product shift to >> 4
MOV T,@M ; T = M
MPY P,T,@X ; P = M * X
MOVL ACC,P << PM ; ACC = M*X >> 4
ADDL @Y,ACC ; Y = Y + ACC