我正在尝试将 jal 功能添加到以下内容,但我不知道它是如何工作的。我知道它将旧PC+4
值存储在$ra
寄存器中,然后将控制权转移到函数,该函数通过返回将控制权传回,$ra
但我如何在硬件中实现它?
user379888
问问题
9092 次
2 回答
2
您需要做两件事。
- 在寄存器的输入端添加一个多路复用器,以便选择 PC+4 值作为要写入的数据。使用适当的控制信号,这将允许您编写 PC+4 作为“jal $ra”指令的附加效果。
- 实现 return "jr $ra" 指令。您需要在选择下一个 PC 的逻辑链中添加一个多路复用器,以便当指令为“jr xxx”时,可以从寄存器文件中选择“读取数据 1”作为下一个 PC。
于 2011-09-20T00:22:57.430 回答
0
我们添加一个新行,将 PC+4 发送到寄存器文件的“Write Data”输入。我们需要添加一个多路复用器。我们还需要确保“写入寄存器”字段设置为 $RA 的地址。寄存器 $RA 大部分时间是第 31 号寄存器。
于 2014-10-16T03:10:35.873 回答