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,但结果没错。