什么条件可能导致整数减法或加法溢出?我没有得到差异

时间:2017-10-18 11:55:21

标签: cpu-architecture mips32 mips64

我没有得到加法和减法之间的区别,我试图查找但仍然没有答案。请以最简单的方式解释。

我知道添加时,超过用于存储它的整数类型的最大大小。当发生整数溢出时,解释的值将显示为“包裹”最大值并再次以最小值开始,但是如何,有什么条件可以防止这种情况发生。

先谢谢。

1 个答案:

答案 0 :(得分:0)

相关:http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt它是关于x86的进位(无符号)和溢出(有符号)标志。

对于MIPS,请记住这一点:add将在x86设置OF时随时捕获。

在MIPS中,您可以使用(a+b) < a无符号比较从添加中获取结转。或者对于子(a-b) > a无符号。

我猜你也可以在subu签名比较(a-b) > a之后检测签名溢出。因此,如果您希望a-b 溢出,请选择您的输入,使得非包装结果介于INT_MIN和INT_MAX之间。就是这样。