ARM汇编指令

1.  b指令跳转范围是64M,用24位空间表示26位。bl:保存返回地址。

2.  前索引:存在r0+4,r0值不变  str r1,[r0,#4](!!以下两种才是真正的索引)

   后索引:数据存在r0并后改变r0的值  str r1,[r0],#4

   自动索引:存到r0+4,然后r0+4。  str r1,[r0,#4]!

3.  stm(存)指令最多操作16个寄存器  stmia r11!,{r1-r5}  (注意和str的目标地址不同)

   使用批量寄存器操作时,编号小的一定存到低地址当中

   stm等价于stmia(increase after use),stmib, stmda,stmdb

   stmia和ldmdb配合,stmib和ldmda配合。

4.  最常用的是满减栈。stmfd,ldmfd

5.  读cpsr:mrs r1,cpsr

   写cpsr: msr cpsr_c,r1

6.  伪指令:ldr r1, =0x12345678  可能等价于ldr r1,[pc]

7.  CPSR中【31:24】条件域F表示  【23:16】状态域S表示  【15:8】预留域X表示  【8:0】控制域C表示

posted @ 2016-11-16 14:21  欧阳健  阅读(276)  评论(0编辑  收藏  举报