两个64位无符号整数QtSpim的和

时间:2015-11-13 16:52:35

标签: mips qtspim

假设寄存器$ 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. 

不确定我将如何解决这个问题,我们将非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我会成对地添加每个数字中最不具意义的单词和最有意义的单词,然后“计算”半进位并且如果进位则增加和的最有意义的单词。

为了“计算”半进位,我将比较总和中最不重要的单词与每个操作数。当您计算无符号加法时,如果总和低于任一操作数,则半进位。

这样的事情:

  addu $v0, $a2, $a0
  addu $v1, $a3, $a1
  bgt $a0, $v0, carry  
  ble $a2, $v0, done
carry:
  addiu  $v1, $v1, 1
done: