标志位的判定"/>
溢出OF和进/借位CF标志位的判定
CF是无符号数溢出标志,OF是有符号数溢出标志。
通俗一点说就是,即使有符号数相加/相减导致了CF=1也没什么意义,不能说明结果的正确与否。此时,OF=1,
则说明结果溢出,出现错误;OF=0,说明结果正确。这个过程根本和CF没关系,CF=1/0,都不会影响。同理也
可以得出OF对无符号数也无影响。
方法一:根据表达式
OF=Cn异或Cn-1
Cn表示第n位的进位
CF=Cout异或Cin
Cin等价于Sub的选择控制,为1时表示做减法
加法时,CF为1表示有进位;减法时,CF取反为1表示有借位
方法二:人为相加
判定CF时,把两者当成无符号数,看是否进位
判定OF时,把两者当成有符号数,看是否进位或借位
用下边这俩做题
判断OF
OF=Cn^Cn-1
Cn表示第n位是否发生进位,如是,则为1,否则为0
这里的第n位指的是机器数的最高位,第n-1位就是次高位
判断CF(人为操作)
把机器数都当作无符号数来进行加减法
两数相加时,如果最高位有进位,则CF=1,否则为0两数相减时,如果被减数最高位有借位,则CF=1,否则为0
更多推荐
溢出OF和进/借位CF标志位的判定
发布评论