常 用 ARM 指 令及汇编包括 1、ARM 处理器寻址方式 2、指令集 3、伪指令 =============================================================================== ARM 处理器寻址方式 1、寄存器寻址:操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值操作 MOV R1, R2 ;R2->R1 SUB R0, R1,R2 ;R1-R2 -> R0 2、立即寻址:立即寻址指令中的操作码字段后面的地址码部分就是操作数本身,也就是说,数据就包含在指令当中,取出指令就取出了可以立即使用的操作数 SUBS R0,R0,#1 ;R0-1 -> R0 MOV R0,#0xff00 ;0xff00 -> R0 注:立即数要以"#"为前缀,表示 16 进制数值时以"0x"表示 3、寄存器偏移寻址:是 ARM 指令集特有的寻址方式,当第 2 操作数是寄存器偏移方式时,第 2 个寄存器操作数在与第 1 个操作数结合之前选择进行移位操作 MOV R0,R2,LSL #3 ;R2 的值左移 3 位,结果存入 R0,即 R0 = R2 * 8 ANDS R1,R1,R2,LSL R3 ;R2 的值左移 R3 位,然后和 R1 相与操作,结果放入 R1 寄存器偏移寻址可采用的移位操作如下 (1)、LSL 逻辑左移,寄存器中字的低端空出补 0 (2)、LSR 逻辑右移,寄存器中字的高端空出补 0 (3)、ASR 算术右移,移位中保持符号位不变,即如果源操作数为正数,字高端空出补 0,否则补 1 (4)、ROR 循环右移,由字的低端移出的位填入高端空出的位 (5)、RRX,操作数右移一位,左侧空位由 CPSR 的 C 填充 4、寄存器间接寻址:寄存器间接寻址指令中的地址码给出的是一个通用寄