Den*_*nis 5 mips integer-overflow
我刚刚开始学习 MIPS 指令的异常处理程序。
我需要使我的程序具有算术溢出异常,以便我可以测试我的异常处理程序。
我有两个数组 A 和 B。数组 A 有十六进制数,数组 B 有整数。
如何通过添加十六进制数和整数来使溢出?
哪些十六进制数和整数相加会导致溢出?
根据MIPS 指令参考,唯一可能产生溢出异常的加法运算是有符号加法指令:
ADD
ADDI
Run Code Online (Sandbox Code Playgroud)
MIPS 整数是 32 位,并且由于您将使用有符号整数,因此最大值为 2 31 -1(也称为 2147483647 或十六进制 7FFFFFFF)。因此,任何导致大于此数字的加法都会引发异常,例如,如果您尝试将 1 添加到 2147483647:
# Load 2147483647 into $s1
LUI $s0, 32767
ORI $s1, $s0, 65535
# Add 1 to $s1 and store in $s2. This should produce an overflow exception
ADDI $s2, $s1, 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33829 次 |
| 最近记录: |