汇编语言中溢出和进位的区别

of的设置,以加法为例,如果两数符号相同,结果却相反,则of=1;否则of=0;(如果两数符号相反,是不会溢出的)。 
cf的设置,最高有效位(bit7,比如)向高位进位则为1,否则为0。所以实际上of是表示有符号数的溢出,cf是表示无符号数的溢出。 
理解进位,从af位的设置更为容易。

其他回答

A的补码与B的补码计算后(   加减)为C的补码 
把C的补码看成无符号数,意义与C相同就是CF=0否则CF=1 
把C的补码看成有符号数,意义与C相同就是OF=0否则OF=1

对于非符号数来说,不存在溢出的问题,它的进位就相当于符号数中的溢出. 
而对于符号数来说,不存在进位的问题.两个正数相加(或一个正数减一个负数)得到负数,或是两个负数相加得到正数,就是溢出了.一个正数和一个负数相加不可能溢出
最佳答案
对于非符号数来说,不存在溢出的问题,它的进位就相当于符号数中的溢出. 
而对于符号数来说,不存在进位的问题.两个正数相加(或一个正数减一个负数)得到负数,或是两个负数相加得到正数,就是溢出了.一个正数和一个负数相加不可能溢出
最佳答案
对于非符号数来说,不存在溢出的问题,它的进位就相当于符号数中的溢出. 
而对于符号数来说,不存在进位的问题.两个正数相加(或一个正数减一个负数)得到负数,或是两个负数相加得到正数,就是溢出了.一个正数和一个负数相加不可能溢出

溢出……值不能太大。太大就会溢出。 

比如在内存里计算一个数据, 
这个数据只在一个字节里计算。 
那这个数据就不能大于255,就会溢出 


1+1=10,10中的1就是从个位上进上来的

汇编语言中溢出是指结束超出数据所表示的范围,通俗地说是装不下了,比如,两个带符号的字节数127和2相加,结果为-1,因为带符号的字节数最大正数为127,所以超过范围,溢出标志位为1,说明出错了。 
进位表示最高位有没有向上形成进位,或向个形成借位,如果有则进位标志为1,但结果没错。

汇编语言中存储的数是有一定范围的,无符号字节存储的范围为0~255,带符号字节存储范围为-128~+127。溢出是指结束超出数据所表示的范围,说明出错了。 
进位表示相加时最高位有没有向上形成进位,或相减时向上形成借位,如果有则进位标志为1,但结果没错

摘自:http://hi.baidu.com/yesdo/blog/item/079f49e92872823bb90e2d63.html

原文地址:https://www.cnblogs.com/yangzhong/p/1966494.html