ARM寄存器有37个寄存器,包含31个通用寄存器和6个状态寄存器
R13_svc表示svc模式下的R13寄存器,不是同一个寄存器
上面R0~R7是同一个
下面是状态寄存器,总共6个
R0~R15可以被划分为三类,R0~R7属于不分组寄存器,R8~R14属于分组寄存器,R15是PC指针
R13通常被用来当做SP堆栈指针
R14被用来充当链接寄存器LR,有两个特殊功能:
在每个模式中都能用来保存函数的返回地址,比如子函数调用完成返回主函数,就用这个
当异常发生时,比如中断,那么返回地址也是用R14
R15被用来程序计数器,PC指针
突然来了一个中断,转去执行中断处理程序CPSR会发生变化,所以要SPSR保存当时CPSR进入中断之前的状态,中断返回时再写回到原来的状态。
1、CPSR/SPSR
N:当我们比较两个数大小时,如A-B,结果负数 N=1;其他结果N=0
Z:也是两个数比较结果,只有当两数相等时Z=1
I:当它被置位1,不能产生中断
F:当它被置位1,不能产生快速中断
M:用来表明处理器不同的工作模式,对应前一讲的模式