2015-11-13 89 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: