2.6.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 the following figure.

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

  • 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 2-15. LSR