Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设寄存器 $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.
不知道我将如何解决这个问题,任何帮助将不胜感激。
我将成对添加每个数字的最不重要的单词和最重要的单词,然后“计算”半进位并在发生进位时增加总和中最重要的单词。
为了“计算”半进位,我会将总和中最不重要的单词与每个操作数进行比较。当您计算无符号加法时,如果总和低于任一操作数,则您有半进位。
像这样的东西:
addu $v0, $a2, $a0 addu $v1, $a3, $a1 bgt $a0, $v0, carry ble $a2, $v0, done carry: addiu $v1, $v1, 1 done: