特点:

  • 所有运算处理都是发生在通用寄存器(一般是R0~R14)之中.
    所有存储器空间(如:C语言变量的本质就是一个存储器空间上的几个BYTE)值的处理,都是要传送到通用寄存器来完成,因此在代码中可以看到大量的LDR,STR指令来传送值.
  • ARM汇编语句中,语句很多时候要隐含地使用上一句的执行结果,而且上一句的执行结果是放在CPSR寄存器里(例如:进位、为0、为负…)
    举例:
    CMP R0,R1
    BNE NoMatch
    注释:BNE隐含的使用上一句CMP执行结果,NE后缀表示使用Z标志位,两句合起来的意思就是:如果R0,R1的值不相等,就跳转到NoMatch处执行.
    注意:PC=R15,CPSR=R16

程序状态寄存器格式:

00_ARM汇编程序特点 - 图1


00_ARM汇编程序特点 - 图2