本文目的是要理清ARM处理器的CPSR状态标志和ARM指令的条件符之间的关系。
一、CPSR寄存器 ARM V4的CPSR寄存器(和保存它的SPSR寄存器)中的位分配如下图1所示。
图1 程序状态寄存器格式 状态标志位含义:(其它位的含义和本文主题无关,此处不多介绍) N N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零; Z Z=1 表示运算的结果为零;Z=0表示运算的结果为非零; C 可以有4种方法设置C的值: ─ 加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。
─ 减法运算(包括比较指令CMP):当运算时产生了借位,C=0,否则C=1。
─ 对于包含移位操作的非加/减运算指令,C为移出值的最后一位。
─ 对于其他的非加/减运算指令,C的值通常不改变。
V 可以有2种方法设置V的值: ─ 对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。
─ 对于其他的非加/减运算指令,V的值通常不改变 二、条件符及对应的标志位 表1 条件符描述表
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !