15
0
7
0
C
Byte
W ord
0
Instruction Set Description
198
SLAU367P – October 2012 – Revised April 2020
Copyright © 2012–2020, Texas Instruments Incorporated
CPUX
4.6.2.38 RLA
* RLA[.W]
Rotate left arithmetically
* RLA.B
Rotate left arithmetically
Syntax
RLA dst
or
RLA.W dst
RLA.B dst
Operation
C
←
MSB
←
MSB-1 .... LSB+1
←
LSB
←
0
Emulation
ADD dst,dst
ADD.B dst,dst
Description
The destination operand is shifted left 1 position as shown in
. The MSB is
shifted into the carry bit (C) and the LSB is filled with 0. The RLA instruction acts as a
signed multiplication by 2.
An overflow occurs if dst
≥
04000h and dst < 0C000h before operation is performed; the
result has changed sign.
Figure 4-38. Destination Operand—Arithmetic Shift Left
An overflow occurs if dst
≥
040h and dst < 0C0h before the operation is performed; the
result has changed sign.
Status Bits
N:
Set if result is negative, reset if positive
Z:
Set if result is zero, reset otherwise
C:
Loaded from the MSB
V:
Set if an arithmetic overflow occurs; the initial value is 04000h
≤
dst < 0C000h,
reset otherwise
Set if an arithmetic overflow occurs; the initial value is 040h
≤
dst < 0C0h, reset
otherwise
Mode Bits
OSCOFF, CPUOFF, and GIE are not affected.
Example
R7 is multiplied by 2.
RLA
R7
; Shift left R7
(x 2)
Example
The low byte of R7 is multiplied by 4.
RLA.B
R7
; Shift left low byte of R7
(x 2)
RLA.B
R7
; Shift left low byte of R7
(x 4)
NOTE:
RLA substitution
The assembler does not recognize the instructions:
RLA
@R5+
RLA.B
@R5+
RLA(.B) @R5
They must be substituted by:
ADD
@R5+,-2(R5)
ADD.B
@R5+,-1(R5)
ADD(.B) @R5