ARM内核中寄存器的浅见

来源:互联网 发布:淘宝人工刷流量网站 编辑:程序博客网 时间:2024/05/18 03:18

                             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指令下的寄存器和对比图



原创粉丝点击