在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 1542|回复: 0

[资料] ARM程序状态寄存器

[复制链接]
发表于 2015-12-2 17:03:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

ARM程序状态寄存器

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

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

下面介绍CPSRSPSR的格式

1)
条件码标志

NZCV,最高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)
控制位

最低8IFTM[40]位用作控制位。当异常出现时,改变控制位。当处理器在特权模式下时,也可由软件改变。

(1)
中断禁止位

I=1,则禁止IRQ中断;若F=1,则禁止FIQ中断。

(2)
T

T=0,则指示ARM执行;若T=1,则指示Thumb执行。

(3)
M模式位

M0M1M2M3M4M[4:0])是模式位,这些决定处理器的工作模式。

3)
其他位

程序状态寄存器的其他位保留,用作以后的扩展。

凌阳教育,专注嵌入式人才培养13年,为大量企业输送优质嵌入式人才,深受企业的认可。想了解更多嵌入式学习资料请点击www.sunplusedu.com获得更多嵌入式免费学习资料的下载。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-25 02:17 , Processed in 0.016496 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表