萨姆的两个64位无符号整数QtSpim
问题描述:
假设寄存器$ 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.
不知道如何我会解决这个问题,任何帮助都将不胜感激。
答
我将两两相加的每个数字中最不显着的单词和最有意义的单词,然后“计算”半进位并增加总和最有意义的单词,如果发生进位。
要“计算”半进位,我会将总和中最不显着的字与每个操作数进行比较。当你计算无符号加法时,如果总和低于任何一个操作数,那么你有半进位。
事情是这样的:
addu $v0, $a2, $a0
addu $v1, $a3, $a1
bgt $a0, $v0, carry
ble $a2, $v0, done
carry:
addiu $v1, $v1, 1
done: