2.6.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. Refer to Figure 2-14.
You can use the ASR #n
operation to divide the value in
the register Rm
by 2n, 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
.
- 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.