EasyManua.ls Logo

ARM Cortex-M4 - Lsr; Lsl

ARM Cortex-M4
276 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
The Cortex-M4 Instruction Set
ARM DUI 0553A Copyright © 2010 ARM. All rights reserved. 3-14
ID121610 Non-Confidential
You can use the
ASR #n
operation to divide the value in the register
Rm
by 2
n
, with the result being
rounded towards negative-infinity.
When the instruction is
ASRS
or when
ASR #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[
n
-1],
of the register
Rm
.
Note
If
n
is 32 or more, then all the bits in the result are set to the value of bit[31] of
Rm
.
If
n
is 32 or more and the carry flag is updated, it is updated to the value of bit[31] of
Rm
.
Figure 3-1 ASR #3
LSR
Logical shift right by
n
bits moves the left-hand
32
-
n
bits of the register
Rm
, to the right by
n
places, into the right-hand
32
-
n
bits of the result. And it sets the left-hand
n
bits of the result to
0. See Figure 3-2.
You can use the
LSR #n
operation to divide the value in the register
Rm
by 2
n
, if the value is
regarded as an unsigned integer.
When the instruction is
LSRS
or when
LSR #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[
n
-1],
of the register
Rm
.
Note
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.
Figure 3-2 LSR #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 3-3 on page 3-15.
Carry
Flag
031 5 4 3 2 1
Carry
Flag
031 5 4 3 2 1
00
0

Table of Contents

Related product manuals