您的位置:首页 > 其它

ARM内核中寄存器的浅见

2017-11-02 01:17 225 查看


                             ARM内核中寄存器的浅见

源地址:http://blog.csdn.net/dennisgang/article/details/52252386

我们先来看一张图:



这张图是ARM手册中的寄存器状态图,我想大部分人应该首先会想到它吧。正如手册中所讲的,这张图中包含37个32位寄存器,其中有31个通用寄存器和6个状态寄存器。CPU会根据不同的工作模式,使部分寄存器可见(即可被使用),图中有灰色下标的正是不同模式下可见的寄存器,被称为分组寄存器。未分组的寄存器在不同模式下都是可见的,但是在寄存器使用时,分组寄存器会屏蔽共享寄存器,从而实现特殊用途。

37个寄存器实际如下图所示:



转换成我们熟悉的手册中的图,如下图:



我们需要特殊指出几个寄存器:

1、R13 ——> SP,为堆栈寄存器,用于C语言类程序之间调用所需的空间指针;

2、R14 ——> LR,为连接寄存器,在发生程序调用时,一般用户存放程序返回地址;

3、R15 ——> PC,为程序计数寄存器,存放西一条要执行的程序码地址。

程序状态寄存器

CPSR(Current Program Status Register)表示当前程序状态寄存器,SPSR(Saved
Program Status Register)用来保存异常程序处理个程序状态,这些寄存器的格式和功能见下图所示。



寄存器的具体详细描述见数据手册,另外我们在贴一张Thumb指令下的寄存器和对比图



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm 内核 寄存器