溢出,是个通用的词汇,其含义,不用多说。
在计算机中,二进制代码,可以表示的数值,是有一定范围的。
运算结果,如果超出了预定的范围,就是:溢出。
--------------------
但是,在计算机中,被 Intel 规定下来了。
无符号数运算的溢出,被称为:进位。
有符号数运算的溢出,才叫做:溢出。
参考下图:
是否进(借)位,要在 0、255 位置上判断。
是否溢出,则要在-128、+127 处判断。
因为有符号数和无符号数的情况处理不一样,需要有溢出和进位两个标志配合才能区分. 以8位二进制为例,有符号数,最高位7位为符号位,第6-0位的数据溢出时是到溢到符号位的,而符号位再有溢出才会置进位,;对无符号数,你还要看进位位,不用关心溢出位.
进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;
溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。
8086中用标志寄存器的cf位和of位区分有无进位与溢出!\ 以上贴图来自,王爽汇编语言