【问题标题】:Is there ever any advantage to using an unconditional MIPS branch rather than a jump?使用无条件的 MIPS 分支而不是跳转有什么好处吗?
【发布时间】:2013-02-08 01:09:47
【问题描述】:

我目前正在大学学习 MIPS 汇编,并且正在努力感受这门语言。据我了解,跳转命令允许我在内存中跳得更远,而不是分支命令会给出额外的可用位。那我为什么要使用无条件分支而不是跳转呢?

【问题讨论】:

    标签: assembly mips


    【解决方案1】:

    跳转有更多的立即位,并且是一个绝对地址。分支使用偏移量。一个是位置无关的,例如另一个不是。

    【讨论】:

    • 谢谢,我明白了。我试图理解为什么我会发送一个 b 标签指令而不是 j 标签一个。
    • 很多时候没有区别,但一个比另一个有更多的影响力,一个是相对的,另一个不是。 mips中的无条件分支是伪指令顺便说一句,看编码
    【解决方案2】:

    MIPS 没有无条件分支。它可能是您的汇编程序提供的伪指令,例如 BEQ R1,R1。分支是可取的,因为它们允许代码位于内存中的任何位置,而不需要relocation。希望在没有 MMU 的机器上实现共享库。背景资料在这个wikipedia article 中。

    【讨论】:

    • 谢谢,正是我所希望的那种答案。 :)
    猜你喜欢
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2012-05-18
    • 2011-10-29
    • 1970-01-01
    相关资源
    最近更新 更多