假设寄存器$ a1和$ a0包含64位无符号整数
A = $a1 × 2^32 + $a0
和寄存器$ a3和$ a2包含一个64位无符号整数
B = $a3 × 2^32 + $a2.
我如何计算A和B的总和并将其存储在$ v1,$ v0中
A + B = $v1×2^32 + $v0.
不确定我将如何解决这个问题,我们将非常感谢任何帮助。
答案 0 :(得分:1)
我会成对地添加每个数字中最不具意义的单词和最有意义的单词,然后“计算”半进位并且如果进位则增加和的最有意义的单词。
为了“计算”半进位,我将比较总和中最不重要的单词与每个操作数。当您计算无符号加法时,如果总和低于任一操作数,则半进位。
这样的事情:
addu $v0, $a2, $a0
addu $v1, $a3, $a1
bgt $a0, $v0, carry
ble $a2, $v0, done
carry:
addiu $v1, $v1, 1
done: