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