目录
寄存器
ARM寄存器
专用寄存器
CPSR寄存器
寄存器
概念:寄存器是处理器内部的存储器,没有地址;
作用:一般用于暂时存放参与运算的数据和运算结果;
分类:包括通用寄存器、专用寄存器、控制寄存器;
ARM寄存器
注:在某个特定模式下只能使用当前模式下寄存器,一个模式下特有的寄存器其他模式下不可使用;
带有三角的是当前模式下特有的寄存器;
ARM下有40个寄存器;
专用寄存器
R15(PC, Program Counter)
程序计数器,用于存储当前取址指令的地址;
R14(LR, Link Register)
连接寄存器,一般有以下两种用途:
- 执行跳转指令(BL / BLX)时,LR会自动保存跳转指令下一条指令的一直程序需要返回时将LR的值赋值到PC即可实现;
- 产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下一条指令的地址,异常处理结束后将LR的值复制到PC可实现程序返回;
R13(SP, Stack Pointer)
栈指针,用于存储当前模式下的栈顶地址;
栈内存放的是临时数据,当有临时数据需要存放在栈中时,就可以从SP寄存器中获取栈顶地址将数据存入,SP寄存器也会随之移动指向下一个空栈。
CPSR寄存器
CPSR(Current Program Status Register),当前程序状态寄存器;
CPSR寄存器分为四个域,
[31:24]为条件域用F表示、
[23:16]为状态域用S表示、
[15:8]为预留域用X表示、
[8:0]为控制域用C表示