汇编语言.两有符号数运算,如何自己判断是否溢出?当of=1,sf=1,为什么实际运算结果为正?

1个回答

  • 1 汇编语言.两有符号数运算,如何自己判断是否溢出?其实有个简单的方法可以使用,即使用逻辑判断法:

    即 从逻辑上看是否正确.

    具体如下:当 正数+正数=负数 则逻辑上看出 是错误的 即溢出

    负数+负数=正数 则逻辑上看出 是错误的 即溢出

    当 正数+负数 是互相抵消的 不会产生溢出

    当 正数—负数=负数 则逻辑上看出(结果应为正) 是错误的 即溢出

    负数—正数=正数 则逻辑上看出(结果应为负) 是错误的 即溢出

    当 正数-正数 或 负数-负数 二者是互相抵消的 不会产生溢出

    嘿嘿 这种方法虽很简单 但也很使用.

    2 当of=1,sf=1,为什么实际运算结果为正?给予回答如下:

    说明有逻辑错误了 运算时的符号标志位sf=1 为负 实际运算结果为正 从逻辑上已经是说不通了 (因此可以判断运算出错 即溢出) 与实际的溢出标志位 of=1 相吻合.

    二者不矛盾.

    如果俺给你解释清楚了 就给俺加分吧 (以示鼓励)