汇编语言.两有符号数运算,如何自己判断是否溢出?当of=1,sf=1,为什么实际运算结果为正?
问题描述:
汇编语言.两有符号数运算,如何自己判断是否溢出?当of=1,sf=1,为什么实际运算结果为正?
答
1 汇编语言.两有符号数运算,如何自己判断是否溢出?其实有个简单的方法可以使用,即使用逻辑判断法:
即 从逻辑上看是否正确.
具体如下:当 正数+正数=负数 则逻辑上看出 是错误的 即溢出
负数+负数=正数 则逻辑上看出 是错误的 即溢出
当 正数+负数 是互相抵消的 不会产生溢出
当 正数—负数=负数 则逻辑上看出(结果应为正) 是错误的 即溢出
负数—正数=正数 则逻辑上看出(结果应为负) 是错误的 即溢出
当 正数-正数 或 负数-负数 二者是互相抵消的 不会产生溢出
嘿嘿 这种方法虽很简单 但也很使用.
2 当of=1,sf=1,为什么实际运算结果为正?给予回答如下:
说明有逻辑错误了 运算时的符号标志位sf=1 为负 实际运算结果为正 从逻辑上已经是说不通了 (因此可以判断运算出错 即溢出) 与实际的溢出标志位 of=1 相吻合.
二者不矛盾.
如果俺给你解释清楚了 就给俺加分吧 (以示鼓励)