无符号的加操作是什么,溢出标志被置上就是怎样
OF是有符号数溢出标志。
CF是无符号数溢出标志,OF是有符号数溢出标志。
通俗一点说就是,即使有符号数相加/相减导致了CF=1也没什么意义,不能说明结果的正确与否。此时,OF=1,则说明结果溢出,出现错误;OF=0,说明结果正确。这个过程根本和CF没关系,CF=1/0,都不会影响。同理也可以得出OF对无符号数也无影响。
OF的判断
①加法
十进制角度,如果两有符号数相加,结果不在-2^(n-1)~2^(n-1)-1内,则OF=1,否则OF=0。
二进制角度,如果两有符号数同号,而相加结果与之异号,则OF=1,否则OF=0。
②减法
十进制角度,如果有符号数相减结果在-2^(n-1)~2^(n-1)-1内,则OF=1,否则OF=0。
二进制角度,如果两个数异号,而相减结果与被减数符号相反,则OF=1,否则OF=0。
CF的判断
①加法
十进制角度,如果两无符号数相加,结果大于2^n-1(n为位数),则CF=1,否则CF=0。
二进制角度,如果两无符号数相加,最高位向前有进位,则CF=1,否则CF=0。
②减法
十进制角度,如果两无符号数相减,减数大于被减数(也即结果不在0—2^n-1内),则CF=1,否则CF=0。
二进制角度,如果两无符号数相减,最高位向前游借位,则CF=1,否则CF=0。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2007-11-05
OF是溢出标志位,overflow flag的缩写,何时是1由不同的指令决定。
用于加减时表示带符号的溢出,当两个同符号相加时,结果的符号与之相反;或两个异号数相减时,结果的符号与减数的符号相同时,则OF=1.
当两个带符号数相乘时,乘积的高一半不是低一半的符号扩展时,则OF=1;两个无符号数相乘时,乘积的高一半不是全0时,则OF=1.本回答被提问者采纳
用于加减时表示带符号的溢出,当两个同符号相加时,结果的符号与之相反;或两个异号数相减时,结果的符号与减数的符号相同时,则OF=1.
当两个带符号数相乘时,乘积的高一半不是低一半的符号扩展时,则OF=1;两个无符号数相乘时,乘积的高一半不是全0时,则OF=1.本回答被提问者采纳
第2个回答 2007-11-05
overflow flag, 溢出标志。举个例之,如果是8为无符号的加操作,255加1的操作就会溢出,结果为0,溢出标志被置上了。