UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 20 December 2013 655 of 841
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 user guide
The permitted shift lengths depend on the shift type and the instruction, see the individual
instruction description or Section 34.2.3.3
. If the shift length is 0, no shift occurs. Register
shift operations update the carry flag except when the specified shift length is 0. The
following sub-sections describe the various shift operations and how they affect the carry
flag. In these descriptions, Rm is the register containing the value to be shifted, and n is
the shift length.
34.2.3.4.1 ASR
Arithmetic 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 copies the original bit[31] of
the register into the left-hand n bits of the result. See Figure 141
.
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.
34.2.3.4.2 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 142
.
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.
Fig 141. ASR #3
 
&DUU\
)ODJ

