如何在MIPS中测试整数乘法溢出?

时间:2014-08-16 11:15:04

标签: mips

我正在学习MIPS组装。我已阅读以下内容:"两个MIPS乘法指令都忽略溢出,因此由软件检查产品是否太大而不适合32位。如果Hi为0表示multu或者复制符号为Lo for mult"则没有溢出。在http://opencourseware.kfupm.edu.sa/colleges/ccse/ics/ics233/files/5_Lab7.pdf

如何在MIPS中测试整数乘法溢出?

1 个答案:

答案 0 :(得分:1)

对于multu(乘以无符号),a,b ≥ 0(a+b) > b。如果a和b是寄存器$8$9中的数字,那么你可以(但我还没有尝试在SPIM中运行它)在代码$10中捕获溢出:

 add $8, $8, $9
 slt $11, $9, $0    //set $11 if b is less than 0 
 slt $10, $8, $9    //set $10 if (a+b) is less than b
 xor $10, $10, $11  

我希望它有效吗?或者我们可以尝试运行MIPS代码。