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

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 各个位含义

在这里插入图片描述
需要注意的是,

  • User 模式下,不能操作 bit[4:0],即不能切换处理器模式

  • User 模式下,不能操作 A,I 和 F 位

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值