理论教育 ARM嵌入式系统:程序状态寄存器

ARM嵌入式系统:程序状态寄存器

时间:2023-11-03 理论教育 版权反馈
【摘要】:ARM处理器包含1个当前程序状态寄存器CPSR和5个程序状态保存寄存器SPSR。所有运行模式下都可以访问当前程序状态寄存器。表1-2 条件码标志的具体含义2.控制位程序状态寄存器的低8位称为控制位,当发生异常时,这些位可以被改变。程序状态寄存器中的其余位为保留位,保留位用于将来ARM版本的扩展。

ARM嵌入式系统:程序状态寄存器

ARM处理器包含1个当前程序状态寄存器CPSR和5个程序状态保存寄存器SPSR。所有运行模式下都可以访问当前程序状态寄存器。每种异常模式都有对应的程序状态保存寄存器,用户模式和系统模式不属于异常,因而没有程序状态保存寄存器。程序状态寄存器的定义如图1-7所示,其主要功能包括:

●保存算术逻辑单元ALU中的当前操作信息。

●控制允许和禁止中断。

●设置处理器的运行模式。

978-7-111-44508-1-Chapter01-10.jpg

图1-7 程序状态寄存器

1.条件码标志

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

条件码标志位的具体含义如表1-2所列。

表1-2 条件码标志的具体含义

978-7-111-44508-1-Chapter01-11.jpg

2.控制位(www.daowen.com)

程序状态寄存器的低8位(包括I、F、T和M[4:0])称为控制位,当发生异常时,这些位可以被改变。如果处理器在特权模式下运行,这些位也可以由程序修改。

中断禁止位I、F:I=1表示禁止IRQ中断,F=1表示禁止FIQ中断。

标志位I:该位反映处理器的运行状态,T=0表示运行于ARM状态,T=1表示运行于Thumb状态。

运行模式位M[4:0]:M0、M1、M2、M3、M4是运行模式位,它们的状态决定了处理器的运行模式。具体含义如表1-3所列。

表1-3 运行模式位M[4:0]的具体含义

978-7-111-44508-1-Chapter01-12.jpg

(续)

978-7-111-44508-1-Chapter01-13.jpg

由表1-3可知,并不是所有运行模式位的组合都能定义一个有效的处理器模式,其他组合可能会导致处理器进入一个不可恢复的状态。

程序状态寄存器中的其余位为保留位,保留位用于将来ARM版本的扩展。当改变寄存器中的条件码标志位或控制位时,保留位不要被改变,在程序中也不要使用保留位来存储数据。

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

我要反馈