汇编中标志位CF和OF的问题

2025-02-22 15:36:46
推荐回答(1个)
回答1:

我之前也回答过类似的问题,进位、溢出、CF和OF是不同的概念,应注意区分。

1.最高位有进位,一定发生溢出。

错!
单单就这一个命题来说,举个例子就可以了,
如8位加法:
FF+02=01
(CF)=1,(OF)=0

如理解为符号加法,则为-1+2=1,(CF)=1表示有进位,(OF)=0表示无溢出,此例可推翻命题
如理解为无符号加法,则为127+2=1,(CF)=1表示有进位,亦表示溢出,(OF)无意义,

2.发生了溢出,最高位一定有进位。

还是举例吧
8位加法:
40+40=80
(CF)=0,(OF)=1
如理解为符号加法,则为64+64=-128,(CF)=0表示无进位,(OF)=1表明结果溢出,此例可推翻命题
如理解为无符号加法,则为64+64=128,(CF)=0表示无进位,亦表示无溢出,(OF)无意义,