ARM寄存器组织(常见专用寄存器、控制寄存器CPSR)

寄存器与CPSR详解
本文介绍了寄存器的基本概念,包括通用寄存器、专用寄存器及控制寄存器CPSR的功能与作用。详细解析了CPSR各比特位的意义及其在不同工作模式下的应用。

目录

一、寄存器的概念

1、什么是寄存器?

2、寄存器的分类

3、不同工作模式下使用的寄存器

二、常见专用寄存器

1、R15(PC,Program Counter)

2、R14(LR,Link Register)

3、R13(SP,Stack Pointer)

三、控制寄存器CPSR

1、模式位 Bit[4:0]

2、状态位 Bit[5]

3、FIQ使能位 Bit[6] / IRQ使能位 Bit[7]

4、判断是否进位/借位 Bit[28] —— 有符号数运算

5、判断是否进位/借位 Bit[29] —— 无符号数运算

6、判断运算结果是否为 0 Bit[30] 

7、判断运算结果是否为负 Bit[31]


一、寄存器的概念

1、什么是寄存器?

寄存器是CPU内部的存储器没有地址。一般用于暂时存放参与运算的数据和结果,比如CPU在做加法运算的时候,加数、被加数以及产生的结果都是暂存在寄存器里。

2、寄存器的分类

寄存器分为三种类型,分别是通用寄存器、专用寄存器、控制寄存器。

通用寄存器指的是没有指定用途,可以存放任意内容的寄存器。既可以存放地址,也可以存放参与运算的数据或者运算产生的结果。

专用寄存器指的是有着指定用途,只能存放指定内容的寄存器。比如程序计数器PC 用于存放下一个要执行的指令的地址、SP用于存放栈顶元素的地址。

控制寄存器指的是用于控制当前CPU运行状态或者运算状态的寄存器。比如CPSR寄存器用于可以用于控制CPU当前所处工作模式,以及保存运算时的进位状态。

3、不同工作模式下使用的寄存器

看下面这个图的时候要以列为单位观察,每一列代表一种工作模式,不同工作模式使用的寄存器也不尽相同。不带三角形符号的表示不同工作模式之间可以共用的寄存器,如r0~r7是所有工作模式都可以共用的寄存器;带三角形符号的表示某一工作模式下特有的寄存器,其他工作模式无法使用该寄存器。

注意:图中虽然看着有很多寄存器,但实际上很多寄存器是可以共用的,算上共用和特有寄存器,一个处理器中仅有40个寄存器

二、常见专用寄存器

1、R15(PC,Program Counter

程序计数器,用于存储当前取址指令的地址。我们写的程序在经过预处理、编译、汇编以后,得到的二进制机器码就是指令。这些指令是被保存在内存中的,CPU接下来要执行哪一条指令都是由PC控制的。

我们写程序时的逻辑是顺序执行,那么CPU在执行指令的时候也是如此,在ARM状态下,每一条指令都占4个字节,所以每执行完一条指令,PC的值会自动自增4个字节,为下一次取指令做准备

2、R14(LR,Link Register

链接寄存器,也是保存指令地址,一般是发生跳转的时候,事先保存跳转指令下一条指令的地址,一般有两种用途。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值