fud*_*din 4 mips computer-architecture isa
我在$ ra返回地址的概念上非常困惑.它是返回正在执行的当前指令的地址还是下一步要执行的指令?有关说明,请使用以下代码,
- 考虑一个调用三个函数func_A,func_B和func_C的代码片段.指令1位于地址1996.当调用三个函数中的每一个时,将在寄存器$ ra中加载什么?
Instruction 1
Instruction 2
jal func_A
Instruction 3
jal func_B
Instruction 4
jal func_C
Instruction 5
Run Code Online (Sandbox Code Playgroud)
提前致谢.
下一条指令存储在$ ra中
所以,当调用func_A时,$ ra = 2008; 当调用func_B时,$ ra = 2016; 当调用func_C时,$ ra = 2024.
这是合乎逻辑的,因为您从子程序返回jr $ra,因此在子程序调用之后跳转到指令.