首页 理论教育 程序状态寄存器-嵌入式系统原理应用

程序状态寄存器-嵌入式系统原理应用

时间:2023-11-23 理论教育 版权反馈
【摘要】:所有处理器模式下都可以访问当前的程序状态寄存器。图2.8程序状态寄存器程序状态寄存器的条件码标志N、Z、C、V 均为条件码标志位。在Thumb 状态下,仅有分支指令是有条件执行的。表2.4各条件码的含义程序状态寄存器的控制位最低8 位I、F、T 和M[4:0]位用作控制位。②T 位:ARM 体系结构V5 及以上的版本的T 系列处理器,当该位为“1”时,程序运行于Thumb 状态,否则,运行于ARM 状态。

程序状态寄存器-嵌入式系统原理应用

所有处理器模式下都可以访问当前的程序状态寄存器(CPSR)。 CPSR 包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。

在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器(SPSR)。 当异常出现时,SPSR 用于保存CPSR 的状态,以便异常返回后恢复异常发生时的工作状态。 程序状态寄存器的格式如图2.8 所示。

图2.8 程序状态寄存器

(1)程序状态寄存器的条件码标志

N、Z、C、V 均为条件码标志位。 它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。 在ARM 状态下,绝大多数的指令都是有条件执行的。 在Thumb 状态下,仅有分支指令是有条件执行的。 各条件码的含义见表2.4。

表2.4 各条件码的含义(www.xing528.com)

(2)程序状态寄存器的控制位

最低8 位I、F、T 和M[4:0]位用作控制位。 当异常出现时,改变控制位。 当处理器在特权模式下时,也可以由软件改变。

①禁止位:I=1,则禁止IRQ 中断;F=1,则禁止FIQ 中断。

②T 位:ARM 体系结构V5 及以上的版本的T 系列处理器,当该位为“1”时,程序运行于Thumb 状态,否则,运行于ARM 状态。 ARM 体系结构V5 及以上的版本的非T 系列处理器,当该位为“1”时,执行下一条指令以引起为定义的指令异常;当该位为“0”时,表示运行于ARM 状态。

③M 模式位:M0、M1、M2、M3 和M4 (M[4:0])是模式位,这些位决定处理器的工作模式,如图2.8 所示。 注意,M[4:0]其他组合的结果是不可预知的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈