【问题标题】:how would I implement a certain instruction in MIPS?我将如何在 MIPS 中实现某个指令?
【发布时间】:2015-04-15 16:33:04
【问题描述】:

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

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

【问题讨论】:

    标签: mips instruction-set


    【解决方案1】:

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

    那么,这个 sn-p 应该可以解决问题:

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

    如果$t0 为非负数,则第一条指令跳转到is_positive。该标签处的指令跳转到$t1 给出的地址。如果没有进行分支(即$t0 为负),则执行以下指令,跳转到$t2 给出的地址。

    【讨论】:

    • 我需要将它作为一条指令来实现
    • MIPS ISA 中没有指令可以满足您的需求。例如,您可以使用答案中给出的 sn-p 来模拟它。
    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多