溢出标志位0f,用来表示有符号运算是否超出存储显示范围,下面以8位存储为例,介绍如何判运算是否溢出。
首先正数+负数不存在溢出,因为正数和负数首先是在可存储范围,相加后一定不会超过显示范围,of=0。
然后是2个正数相加,只要看最高位没有进位,有进位of=0,否则of=1。
两个负数相加,因为负数需要转换成补码计算,而且仅靠最高位不好判断,比如(-1)+(-1)=(-2)。
可以转换成十进制计算,8位存储可以显示范围(-128~127),只要计算结果是在范围之内就不会溢出,of=0,否则of=1。
总结:判断溢出标志符号of方法:
1、正数和负数相加,of=0
2、正数相加,看最高位是否有进位
3、负数和负数相加,先换算十进制,看计算结果是否在存储的范围。