ARM中CPSR的标志位中的C和V

进位标志和溢出标志
这次大概总结一下进位标志(Carry Flag, CF)和溢出标志(Overflow Flag, OF)的含义和理解方式

首先明确一点基本认识,处理器本身并不在意也不知道参与算术运算或者逻辑运算的操作数是有符号的还是无符号的。ALU总是为给定的操作数做二进制运算,并根据结果设置相应的标志位。

因此,视参与运算的整数的实际情况,CF或者OF会被独立的置位或者清零。他们的含义是有程序设计者赋予的,在进行无符号运算时,我们需要检查CF来确定运算结果是否正确,而在进行有符号运算时,则通过检查OF来判断结果是否发生溢出。

1. Carry Flag

加法中运算结果的最高有效位向更高位进位时C=1;

减法中运算结果的最高有效位从更高位借位时C=0;
 

2. Overflow Flag
OF 会在下面两种情形变为1:

两个最高有效位均为0的数相加,得到的结果最高有效位为1
两个最高有效位均为1的数相加,得到的结果最高有效位为0
除了这两种情况以外,OF 为0。

使用补码表示有符号数时,最高有效位为0表示正数,最高有效位为1表示负数。因此上面的论述也可以表示为,两个正数相加得到负数,或者两个负数相加得到正数时 OF 置位,否则复位。


版权声明:本文为CSDN博主「cmiao-me」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cxm2643199642/article/details/105937286/

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值