$ ra是返回当前指令的地址还是下一条指令?

时间:2011-08-21 09:46:37

标签: mips computer-architecture isa

我对$ ra返回地址的概念感到很困惑。它是否返回正在执行的当前指令的地址或要执行的指令?有关说明,请使用以下代码

  
      
  1. 考虑一个调用三个函数func_A的代码片段,   func_B和func_C。指令1位于1996年的地址。什么   将在三个函数中的每个函数都加载到寄存器$ ra中   叫?
  2.   
Instruction 1
Instruction 2
jal func_A
Instruction 3
jal func_B
Instruction 4
jal func_C
Instruction 5

提前致谢。

1 个答案:

答案 0 :(得分:9)

下一条指令存储在$ ra

所以,当调用func_A时,$ ra = 2008;当调用func_B时,$ ra = 2016;当调用func_C时,$ ra = 2024。

这是合乎逻辑的,因为你从子程序返回jr $ra,因此跳转到子程序调用后的指令。