MOV ACC,#16bit<<#0..15
6-157
MOV ACC,#16bit<<#0..15 Load Accumulator With Shift
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
MOV ACC,loc16<<#0..15 1111 1111 0010 SHFT
CCCC CCCC CCCC CCCC
X − 1
Operands ACC Accumulator register
#16bit 16-bit immediate constant value
#0..15 Shift value (default is ”<< #0” if no value specified)
Description Load the ACC register with the left shifted contents of the 16-bit immediate
value. The shifted value is sign extended if sign extension mode is turned on
(SXM = 1) else the shifted value is zero extended (SXM = 0). The lower bits of
the shifted value are zero filled:
if(SXM = 1) // sign extension mode enabled
ACC = S:16bit << shift value;
else // sign extension mode disabled
ACC = 0:16bit << shift value;
Flags and
N
After the load, the N flag is set if bit 31 of the ACC is 1, else N is cleared.
Modes
Z
After the load, the Z flag is set if the ACC value is zero, else Z is cleared.
SXM
If sign extension mode bit is set; then the 16-bit constant operand will be
sign extended before the load; else, the value will be zero 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 signed value: ACC = −2010 << 10 + VarB << 6;
SETC SXM ; Turn sign extension mode on
MOV ACC,#−2010 << #10 ; Load ACC with −2010 left shifted by 10
ADD ACC,@VarB << #6 ; Add VarB left shifted by 6 to ACC