ARM内核中寄存器的浅见

我们先来看一张图:

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




<<< 返回博客架构


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值