【发布时间】:2018-11-18 04:51:26
【问题描述】:
作为十六进制转十进制程序的一部分,我使用 QT spim 在 MIPS 中编写,我将 16^7 (268435456) 的值加载到通用寄存器中。然后我根据字符将这个数字乘以 1-15,将结果添加到运行总数中,然后将 16^7 除以 16。
但是,我在乘以 268435456 时遇到了我认为是溢出的问题。例如,代码
li $t0, 10
li $t1, 268435456
multu $t0, $t1
mflo $t2
li $v0, 10
syscall
这旨在将 268435456 乘以 10 并将结果存储在 $t2 存储 -1610612736 而不是 2684354560 中。关于如何修复此代码以存储正确值的任何想法?
【问题讨论】: