2015-11-13 50 views
0

假设寄存器$ a1和$ A0包含一个64位无符号整数萨姆的两个64位无符号整数QtSpim

A = $a1 × 2^32 + $a0 

和寄存器$ a3和$ A2包含一个64位无符号整数

B = $a3 × 2^32 + $a2. 

我怎么会去计算A和B的总和,并在存放$ V1,$ V0这样

A + B = $v1×2^32 + $v0. 

不知道如何我会解决这个问题,任何帮助都将不胜感激。

回答

1

我将两两相加的每个数字中最不显着的单词和最有意义的单词,然后“计算”半进位并增加总和最有意义的单词,如果发生进位。

要“计算”半进位,我会将总和中最不显着的字与每个操作数进行比较。当你计算无符号加法时,如果总和低于任何一个操作数,那么你有半进位。

事情是这样的:

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