2.6.3.4.3 LSL
Logical shift left by n bits moves the right-hand 32-n bits
of the register Rm
, to the left by n places, into the left-hand
32-n bits of the result. And it sets the right-hand n bits of the result to 0.
See Figure 2-16.
You can use the LSL #n
operation to multiply the value in
the register Rm
by 2n, if the value is
regarded as an unsigned integer or a two’s complement signed integer. Overflow can occur
without warning.
When the instruction is LSLS
or when LSL
#n
, with non-zero n, is used in Operand2 with the instructions
MOVS
, MVNS
, ANDS
,
ORRS
, ORNS
, EORS
,
BICS
, TEQ
or TST
, the carry flag is
updated to the last bit shifted out, bit[32-n], of the register Rm
. These
instructions do not affect the carry flag when used with LSL #0
.
- If n is 32 or more, then all the bits in the result are cleared to 0.
- If n is 33 or more and the carry flag is updated, it is updated to 0.