我需要在MIPS程序集中实现一条指令,如果它的值是非负的,它会跳转到存储在寄存器中的位置;否则,它跳转到存储在第二个寄存器中的位置。
我遇到了如何检查寄存器中的负值的问题,还需要帮助了解如何实现这一点。
答案 0 :(得分:0)
假设你有$t1
个测试寄存器(指向地址的那个,如果它的内容是非负的则跳转),并在$t2
寄存器中保存跳转的地址如果$t1
是否定的。
然后,这个片段应该可以解决问题:
bge $t1, $zero, is_positive
jr $t2
is_positive:
jr $t1
如果$t0
是非负的,则第一条指令分支到is_positive。该标签上的指令跳转到$t1
给出的地址。如果未采用分支(即$t
0为负),则执行以下指令,该指令将跳转到$t2
给出的地址。