常用ARM指令1:s数据处理指令
- 数据传输指令 mov mvn
- 算术指令 add sub rsb abc sbc rsc
- 逻辑指令 and orr eor bic
- 比较指令 cmp cmn tst teq
- 乘法指令 mvl mla umull umlal smull smlal
- 前导零计数 clz
常用ARM指令2: cpsr 访问指令
- mrs & msr
- mrs 用来读psr, msr用来写psr
- CPSR 寄存器比较特殊,需要专门的指令访问,这就是mrs和msr
常用ARM 指令3: 跳转(分支)指令
- b & bl & bx
- b 直接跳转(就没有打开算返回)
- bl branch and link 跳转前把返回地址放入lr中,以便返回,以便用于函数调用
- bx跳转同时切换到ARM模式,一般用于异常处理的跳转
常用ARM指令4: 访存指令
- ldr /str & ldm/stm & swp
- 单个字/ 半字/字节访问 ldr/str
- 多字批量访问 ldm/stm
- swp r1, r2, [r0]
- swp r1, r2, [r0]
ARM汇编中的立即数
- 合法立即数与非法立即数
- arm 指令都是32位,除了指令标记和操作标记外,本身只能附带很少位数的立即数,因此立即数有合法和非法之分
- 合法立即数:经过任意位数的移位后非零部分可以用8位表示即为合法立即数
常用ARM指令5: 软中断指令
- swi (software interrupt)
- 软中断指令用来实现操作系统中系统调用
网友评论