进借位CF标志位CF怎么算

为第一个操作减去第二个操作数,

但不影响第两个操作数的值

ZF=1 这个简单,则说明两个数相等,因为zero为1说明结果为0

若CF=1 则说明了有进位或借位,cmp是进行的减操作,故可以看出为借位,所以,此时oprd1<oprd2

CF=0 则说明了无借位,但此时要注意ZF是否为0,若为0,则说明结果不为0,故此时oprd1>oprd2

若SF=0,OF=0 则说明了此时的值为正数,没有溢出,可以直观的看出,oprd1>oprd2

最后两个可以作出这种判断的原因是,溢出的本质问题:

两数同为正,相加,值为负,则说明溢出

两数同为负,相加,值为正,则说明溢出

故有,正正得负则溢出,负负得正则溢出

很简单的一条指令,初学者看看,我感觉我写的还挺详细的,哈哈……

补充: 两数相减,同号,则不溢出

两数为异号,结果与减数符号相同,则溢出。

拍照搜题,秒出***,一键查看所有搜题记录

拍照搜题,秒出***,一键查看所有搜题记录

微机原理 关于CF进位标志的疑问
书上说CF记录运算时从最高有效位产生的进位值或借位值。当最高有效位有进位或借位时CF=1。
但我举个例子:计算H的结果,判断CF。我知道此时正确***CF应该等于零。
但是如果把它化成二进制的减法,变成00 10 11 00
此时最高位不是产生了借位吗?产生借位CF不应该等于1吗?
如果不能从减法中看CF,那定义中的“借位”又如何解释?
请指出我上述哪个地方错了,谢谢。

拍照搜题,秒出***,一键查看所有搜题记录

当指令“SUB AX,BX”执行后,如果CF=1,则说明最高有效位向高位有进位或有借位,对【 】数的操作结果溢出。

请帮忙给出正确***和分析,谢谢!

参考资料

 

随机推荐