当提到标志位cf怎么判断,大家应该都了解,有人问标志位如何判断,这究竟怎么回事呢?让我们一起来了解吧。
cf、of、sf不可能是010:
同号相加才可能产生溢出,所以,要判断两个数的符号位是0、0和1、1两种情况。
另外由于cf是0,所以不可能是1、1,否则最高位肯定向前产生进位了
只剩下一种情况,就是两个正数相加。
两个正数相加时,没有进位但是产生溢出,只能是符号位为1,也就是正+正=负,这才是溢出啊。矛盾,所以cf、of、sf不可能是010。
cf、of、sf不可能是111:
同样的,既然是溢出了,一定是同号相加(符号位是0、0和1、1两种情况)
而0、0这种情况可以排除,因为如果两个数的最高位是0和0,一定不会产生进位。
剩下两个负数相加,既然是溢出,负+负=正才是溢出,所以符号位一定是0,又是矛盾啊,错误。所以,cf、of、sf不可能是111
微机原理中AF和CF标志位区别为:用途不同、触发条件不同、减法不同。
一、用途不同
1、AF标志位:AF标志位是辅助进位标志,供BCD码使用。
2、CF标志位:CF标志位是进位标志,加法时的最高位(D7或D15)产生进位或减法时最高位进行借位使用。
二、触发条件不同
1、AF标志位:在加(减)法操作中,bit3向bit4有进位(借位)发生时,AF=1,否则AF=0。
2、CF标志位:当进行加(减)法运算时,若最高位向前有进(借)位,则CF=1,否则CF=0。
三、减法不同
1、AF标志位:AF标志位需要考虑在BCD减法之后转化为补码加法调整AL中的值。
2、CF标志位:CF标志位不用考虑减法最终是否转化为补码加法的问题。
SAL DL ,1 ;执行后 CF的值就是 执行前 DL的最高位;
SAL DL,CNT ;执行后 CF的值就是 执行前 DL的第CNT位;
是进位状态标志位。
标志位CF是进位状态标志位,用来反映运算结果是否产生进位或者是借位。
版权声明:本网站作品与素材版权均归作者所有,如内容侵权与违规请发邮件联系,我们将在三个工作日内予以改正,请发送到landui8899#163.com(#换成@)。
本文链接:http://hz6z.com/p/110665.html