【发布时间】:2013-02-08 01:09:47
【问题描述】:
我目前正在大学学习 MIPS 汇编,并且正在努力感受这门语言。据我了解,跳转命令允许我在内存中跳得更远,而不是分支命令会给出额外的可用位。那我为什么要使用无条件分支而不是跳转呢?
【问题讨论】:
我目前正在大学学习 MIPS 汇编,并且正在努力感受这门语言。据我了解,跳转命令允许我在内存中跳得更远,而不是分支命令会给出额外的可用位。那我为什么要使用无条件分支而不是跳转呢?
【问题讨论】:
跳转有更多的立即位,并且是一个绝对地址。分支使用偏移量。一个是位置无关的,例如另一个不是。
【讨论】:
MIPS 没有无条件分支。它可能是您的汇编程序提供的伪指令,例如 BEQ R1,R1。分支是可取的,因为它们允许代码位于内存中的任何位置,而不需要relocation。希望在没有 MMU 的机器上实现共享库。背景资料在这个wikipedia article 中。
【讨论】: