语法:

<Rm>, LSR #<shift_imm>

参数:
Rm 寄存器
shift_imm 左移使用的立即数,该值范围:[0,31]

移位操作在ARM指令集中不作为单独的命令使用,它在指令格式中常作为一部分出现。

功能:

将 寄存器的数值 逻辑右移 shift_imm 位;
移位操作后,空出位补0,移除的低位丢弃;

示例:

;//将5存储到R0寄存器
MOV  R0, #5
;//然后将R0逻辑左移2位后传送到R1寄存器中
MOV  R1, R0, LSR #2

分析
5的二进制数为 0101,逻辑左移2位之后为 0000 0001, 也就是十进制 1。

技巧
每逻辑右移1位相当于原数值进行一次除2的操作。
5逻辑右移2位,即: 522=1 \frac{5}{2^2} = 1