arm寄存器功能

1. Cortex-A寄存器组织如下图:

 

未分组寄存器:r0-r7  r15  cpsr, cpu在任何模式下看到的 这几个寄存器都是一样的

分组寄存器 r8-r14 在不同模式下看到的这几个寄存器是不一样的

 

2. 寄存器功能说明

r0-12   存取数据,临时数据

r13:sp 用于指向不同模式的栈顶。栈,每种模式都需要开辟一块内存,用于在该模式下 函数调用,临时分配的数据存放在此处,

r14 : lr 程序跳转的时候,返回地址保存到此处

r15 :pc 要执行的西一条指令地址,就存放在此处,每次指令执行完,就自动+4

CPSR:程序状态寄存器。程序执行的时候,有很多临时标记位,结果是0 是否溢出,是否有借位,是否有 进位,当前cpu模式,

SPSR:用于模式切换,将切换前的 cpsr 保存到 新的模式的 spsr,模式切换回去的时候,再将spsr的内容还原到cpsr。

3. 程序状态寄存器(cpsr)如下图:

4. 程序计数器PC(r15)

pc的作用:下一条要执行的指令的地址,就存放在pc中,我们可以通过向pc赋值,来控制程序跳转

当处理器执行在ARM状态:

1)所有指令32bits宽

2)所有指令必须word对齐

3)所有pc值由[31:2]决定,bits[1:0]未定义(所以指令不能halfword/byte对齐)

 


猜你喜欢

转载自blog.csdn.net/weixin_42048417/article/details/80574763