在Assembly中添加两个64位数字

时间:2009-08-15 12:25:32

标签: assembly mips

所以我正在使用SPIM模拟器学习MIPS并且我坚持这个问题。

我想添加两个64位数字,这些数字存储在四个32位寄存器中。所以我添加了LO字节,然后是进位和HI字节。但是没有adc / addc命令,即使用carry添加。

所以我必须在状态寄存器中添加进位。但是,我究竟如何阅读这个寄存器?

如果$ t0是临时寄存器1,那么持有进位标志的状态寄存器的等价物是什么?

我google了很多,我仍然找不到任何甚至使用状态寄存器的例子。

1 个答案:

答案 0 :(得分:22)

添加$ t2 $ t3 + $ t4 $ t5,结果为$ t0 $ t1

addu  $t1, $t3, $t5    # add least significant word
sltu  $t0, $t1, $t5    # set carry-in bit 
addu  $t0, $t0, $t2    # add in first most significant word
addu  $t0, $t0, $t4    # add in second most significant word

对于问题的第二部分,没有状态寄存器。一个都没有。纳达。