ARM语法中的 移位操作如下,也是寻址的一种方法。在寻址方法中还会看到。
LSL:逻辑左移,移位后寄存器空出的低位补0。可以是立即数或寄存器。
LSR:逻辑右移,移位后寄存器空出的高位补0。
ASR:算术右移,移位过程中,符号位保持不变,如果源操作数是正数,则空出的高位补0,否则补1.
ROR:循环右移,类似LSR,移位后移除的低位填入空出的高位。
RRX:带扩展的循环右移,操作数右移一位,移位空出的高位用C标志的值填充。
MOV R0, R1, LSL #2
R1寄存器左移两位赋值给R0,指令执行后,R0=R1*4。