我如何在MIPS中实现某个指令?

时间:2015-04-15 16:33:04

标签: mips isa

我需要在MIPS程序集中实现一条指令,如果它的值是非负的,它会跳转到存储在寄存器中的位置;否则,它跳转到存储在第二个寄存器中的位置。

我遇到了如何检查寄存器中的负值的问题,还需要帮助了解如何实现这一点。

1 个答案:

答案 0 :(得分:0)

假设你有$t1个测试寄存器(指向地址的那个,如果它的内容是非负的则跳转),并在$t2寄存器中保存跳转的地址如果$t1是否定的。

然后,这个片段应该可以解决问题:

    bge $t1, $zero, is_positive
    jr $t2
is_positive:
    jr $t1

如果$t0是非负的,则第一条指令分支到is_positive。该标签上的指令跳转到$t1给出的地址。如果未采用分支(即$t 0为负),则执行以下指令,该指令将跳转到$t2给出的地址。