马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
ARM程序状态寄存器 所有处理器模式下都可访问当前的程序状态寄存器CPSR。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。ARM程序状态寄存器如图所示。 在每种异常模式下都有一个对应的物理寄存器——程序状态保护寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后回复异常发生时的工作状态。 下面介绍CPSR和SPSR的格式 1)
条件码标志 N、Z、C、V,最高4位为条件码标志。ARM的大多数指令可以是条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。 在数据处理指令中,除了比较指令和测试指令可设置状态寄存器的条件码外,大多数数据指令都可通过在指令助记符后加S来设置状态寄存器的条件码。这在讲解数据处理指令中有详细的介绍。 各个条件码的含义如下: N——在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0. Z——如果结果为0,则Z=1,;如果结果为非0,则Z=0.
程序状态寄存器
C——其设置分为以下几种情况:
对于加法指令(包括比较指令CMN),如果产生进位,则C=1;否则C=0.
对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1.
对于有移位操作的非加减法指令,C为移位操作中最后移出位的值。
对于其他指令,C通常不变。
V——其设置分为以下2种情况:
对于加减法指令,在操作数和记过是有符号飞整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0.
对于其他指令,V通常不发生变化。
2)
控制位 最低8位I、F、T和M[4:0]位用作控制位。当异常出现时,改变控制位。当处理器在特权模式下时,也可由软件改变。 (1)
中断禁止位 若I=1,则禁止IRQ中断;若F=1,则禁止FIQ中断。 (2)
T位 若T=0,则指示ARM执行;若T=1,则指示Thumb执行。 (3)
M模式位 M0、M1、M2、M3和M4(M[4:0])是模式位,这些决定处理器的工作模式。 3)
其他位 程序状态寄存器的其他位保留,用作以后的扩展。 凌阳教育,专注嵌入式人才培养13年,为大量企业输送优质嵌入式人才,深受企业的认可。想了解更多嵌入式学习资料请点击www.sunplusedu.com获得更多嵌入式免费学习资料的下载。 |