凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

ARM程序状态寄存器

已有 912 次阅读| 2015-12-2 16:54 |个人分类:嵌入式培训

所有处理器模式下都可访问当前的程序状态寄存器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获得更多嵌入式免费学习资料的下载。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

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

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

GMT+8, 2024-4-26 08:52 , Processed in 0.012270 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部