跳跃和跳跃和链接之间的差异

时间:2012-03-30 03:24:47

标签: mips

有人能提供一个jal指令有用的例子,它可以在完成子程序后如何用它返回主体吗?

问候

3 个答案:

答案 0 :(得分:13)

“jmp”是“goto”。

“jal”是一个“gosub”

如果您希望从您来的地方返回,jal会将退货地址保存在$ ra中;)

http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm

答案 1 :(得分:6)

跳转在程序计数器中放置某个地址并从那里继续执行,但是,JAL(跳转和链接)执行相同操作但它将返回地址保存在ra中,以便您可以在子例程完成后继续执行,即:< / p>

int main() {
    dosomething();
    //code here
}


void dosomething() {
//.....code here
}

dosomething将是一个子程序,返回主程序段并继续执行

答案 2 :(得分:1)

跳转和链接将跳转到例程并将程序计数器存储到GPR r31中,当例程完成时,MIPS使用'jr r31'从该例程返回。