L12D3 ARM寄存器组织

一、ARM寄存器组织(一)

(一)寄存器的概念

不同CPU寄存器的个数、位数、数量不同。

L12D3 ARM寄存器组织_第1张图片

1、存储器,速度快,但是不能进行取地址工作,寄存器没有地址,寄存器的存储类型是register(栈,堆...)。数据只能是整形不能是浮点型。register只能修饰局部变量。全局变量声明周期很长。

2、寄存器一般用于暂时存放运算数据和运算结果。

3、寄存器可以分为通用寄存器、专用寄存器(规定好存取内容)、控制寄存器(通过修改控制寄存器修改处理器状态)

二、ARM寄存器组织(二)

(一)ARM寄存器

L12D3 ARM寄存器组织_第2张图片

不同模式允许使用的寄存器不同

*寄存器是某一个模式下特有的

ARM一共有40个寄存器(7模式下有37个)

(二)专用寄存器

L12D3 ARM寄存器组织_第3张图片

R15:  程序计数器PC,存储当前取值指令的地址

自动增加(每次自增4)或者通过汇编修改

R14:链接寄存器LR

1. 执行跳转指令(例如函数调用)时,LR会自动保存跳转指令下一条的指令地址,子程序调用,是预知的

2. 异常发生,LR会自动保存被异常打断的指令的下一条指令,是随机发生的

R13:栈指针,存储当前模式下的栈顶地址

栈的本质是一段内存,存储的是临时数据,栈指针是实时改变的

三、ARM寄存器组织(三)

(一)CPSR控制寄存器

L12D3 ARM寄存器组织_第4张图片

当前程序状态寄存器

32位ARM处理器的寄存器都是32位

1、模式位

L12D3 ARM寄存器组织_第5张图片

2、状态位

3、FIQ、IRQ禁止

L12D3 ARM寄存器组织_第6张图片

4、溢出标志/进位或借位扩展/零/负或小于  [28,31] L12D3 ARM寄存器组织_第7张图片

bit[28]有符号数

bit[29]无符号数

四、简述ARM处理器中R13、R14、R15、CPSR寄存器的作用

(一)R13:栈指针,存储当前模式下的栈顶地址,栈指针是实时改变的。
(二)R14:链接寄存器LR
         1. 执行跳转指令(例如函数调用)时,LR会自动保存跳转指令下一条的指令地址,子程序调用,是预知的。
         2. 异常发生,LR会自动保存被异常打断的指令的下一条指令,是随机发生的。
(三)R15:程序计数器PC,存储当前取值指令的地址,自动增加(每次自增4)或者通过汇编修改。
(四)CPSR:控制当前程序程序状态。包括模式位、状态位、FIQ和IRQ禁止、溢出标志、进位借位、零、负或小于等标志。

你可能感兴趣的:(arm开发)