我只是想在本机 MIPS 上实现多精度算术。假设一个 64 位整数在寄存器 $12 和 $13 中,另一个在寄存器 $14 和 $15 中。这笔款项将存放在 10 美元和 11 美元的寄存器中。64 位整数的最高有效字在偶数寄存器中找到,最低有效字在奇数寄存器中找到。它说,在互联网上,这是最短的实现。
addu $11, $13, $15 # add least significant word
sltu $10, $11, $15 # set carry-in bit
addu $10, $10, $12 # add in first most significant word
addu $10, $10, $14 # add in second most significant word
我只是想仔细检查我是否理解正确。sltu 检查两个最低有效字的总和是否小于或等于操作数之一。如果是这种情况,那么是否发生了进位,这是对的吗?
要检查添加两个最重要的单词时是否发生进位并将结果存储在 $9 我必须做的事情:
sltu $9, $10, $12 # set carry-in bit
这有道理吗?