【ARMv7-A】——当前程序状态寄存器 CPSR

本文介绍了ARMv7-A架构中的CPSR(当前程序状态寄存器)及其重要性。CPSR包含了条件标志位、中断禁止位等,而SPSR则在异常中断时用于保存CPSR的状态。在usr和sys模式下,APSR作为CPSR的受限替代品,只允许访问部分位。CPSR的各个位如N、Z、C、V分别表示负数、零、进位/借位和溢出标志,还有用于条件执行的IT字段、Java执行状态的J位以及用于SIMD指令的饱和标志GE等。同时,文章也提到了异步中止、IRQ和FIQ中断的控制以及处理器模式的切换。
摘要由CSDN通过智能技术生成

CPSR

Current Program Status Register 即 CPSR,当前程序状态寄存器,可以在任何处理器模式下被访问。它包含了条件标志位、中断禁止位,当前处理器模式标志以及其他的一些控制和状态位。

SPSR

除了 usr 和 sys 模式外,每一种处理器模式下都有一个专用的物理寄存器,称为 SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断程序退出时,可以用 SPSR 中保存的值来恢复 CPSR。

由于用户模式和系统模式不是异常中断模式,所以他们没有 SPSR。当在用户模式或系统模式中访问 SPSR,将会产生不可预知的结果

SPSR

Usr 模式下有一个受限的 APSR(application program status register) 寄存器用来简单的代替 CPSR
应用程序必须使用APSR来访问CPSR中可以在非特权模式下更改的部分。可访问的位包括:N Z C V Q 和 GE[3:0]。也就是说在 usr 模式下只能访问这些位。

CPSR 各个位含义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值