如何在MIPS中实现特定指令?

如何在MIPS中实现特定指令?,mips,instruction-set,Mips,Instruction Set,我需要在MIPS汇编中实现一条指令,如果它的值是非负的,它将跳转到寄存器中存储的位置;否则,它跳转到存储在第二个寄存器中的位置 我在如何检查寄存器中的负值方面遇到了问题,还需要帮助理解如何实现这一点 假设您在$t1中有测试寄存器(如果其内容为非负,则指向跳转地址的寄存器),在$t2中有寄存器,如果$t1为负,则该寄存器将保存跳转地址 然后,这段代码应该可以实现以下功能: bge $t1, $zero, is_positive jr $t2 is_positive: jr

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


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

假设您在
$t1
中有测试寄存器(如果其内容为非负,则指向跳转地址的寄存器),在
$t2
中有寄存器,如果
$t1
为负,则该寄存器将保存跳转地址

然后,这段代码应该可以实现以下功能:

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

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

给定的地址。我需要将其作为一条指令来实现。MIPS ISA中没有您想要的指令。例如,您可以使用答案中给出的代码段来模拟它。