Part2.3寄存器详解

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:用来表明处理器不同的工作模式,对应前一讲的模式

 

 

posted @ 2017-05-22 21:34  郁兴力  阅读(294)  评论(0)    收藏  举报