语法:
<Rm>, LSL #<shift_imm>
参数:
Rm 寄存器
shift_imm 左移使用的立即数,该值范围:[0,31]
移位操作在ARM指令集中不作为单独的命令使用,它在指令格式中常作为一部分出现。
功能:
将 寄存器的数值 逻辑左移 shift_imm 位;
移位操作后,空出位补0,移除的高位丢弃;
示例:
;//将5存储到R0寄存器
MOV R0, #5
;//然后将R0逻辑左移2位后传送到R1寄存器中
MOV R1, R0, LSL #2
分析:
5的二进制数为 0101,逻辑左移2位之后为 0001 0100, 也就是十进制 20。
技巧:
每逻辑左移1位相当于原数值进行一次乘2的操作。
5逻辑左移2位,即: