【发布时间】:2015-04-15 16:33:04
【问题描述】:
我需要在 MIPS 汇编中实现一条指令,如果它的值是非负的,它会跳转到存储在寄存器中的位置;否则,它跳转到存储在第二个寄存器中的位置。
我在如何检查寄存器中的负值方面遇到问题,并且还需要帮助了解如何实现这一点。
【问题讨论】:
标签: mips instruction-set
我需要在 MIPS 汇编中实现一条指令,如果它的值是非负的,它会跳转到存储在寄存器中的位置;否则,它跳转到存储在第二个寄存器中的位置。
我在如何检查寄存器中的负值方面遇到问题,并且还需要帮助了解如何实现这一点。
【问题讨论】:
标签: mips instruction-set
假设您在$t1 中有测试寄存器(如果其内容为非负,则指向要跳转的地址),而在$t2 中,如果$t1 将保存跳转地址是否定的。
那么,这个 sn-p 应该可以解决问题:
bge $t1, $zero, is_positive
jr $t2
is_positive:
jr $t1
如果$t0 为非负数,则第一条指令跳转到is_positive。该标签处的指令跳转到$t1 给出的地址。如果没有进行分支(即$t0 为负),则执行以下指令,跳转到$t2 给出的地址。
【讨论】: