ARM寄存器之cpsr/spsr
参考:https://blog.csdn.net/laviolette/article/details/51376751
1. cpsr
| N | Z | C | V | 保留位 | I | F | T | 5位模式位M[4:0] |
|---|---|---|---|---|---|---|---|---|
| Negative | zero | carry | overflow | ... | Irq中断禁止位 | FIQ中断禁止位 | 工作状态位 | 见下表 |
| M[4:0] | 模式 |
|---|---|
| 0b10000 | 用户 |
| 0b10001 | FIQ |
| 0b10010 | IRQ |
| 0b10011 | 管理 |
| 0b10111 | 终止 |
| 0b11011 | 未定义 |
| 0b11111 | 系统 |
注:
(1)user:非特权模式,大部分任务运行在种模式
(2)fiq:当一个高优先级中断产生时会进入这种模式
(3)irq:低优先级中断产生时会进入这种模式
(4)supervisor:当复位或软中断指令产生时会进入这种模式
(5)abort:存取异常时会进入这种模式
(6)undef:执行未定义指令是会进入这种模式
(7)system:使用和user模式相同寄存器集的特权模式
特权模式下除system外都是异常模式。
2. spsr
每种异常模式下都有一个spsr寄存器,用于保存cpsr寄存器的状态,以便返回时恢复异常发生时的工作状态。用户模式和系统模式下不能访问spsr寄存器。

浙公网安备 33010602011771号