嘿,我学习软件,所以在绘制电路方面我绝对是新手,我需要在此处向此 MIPS 机器添加新指令
我必须添加的新指令 jt - 跳转表 - 是一条指令,它可以转到由两个寄存器指示的地址处的内存中的值指示的地址:
jt rs, rt # PC := mem[ R[rs] + R[rt] * 8 ]
其编码如下: • 指令[31-26]:jt 的操作码
• 指令[25-21]:rs注册号
• 指令[20-16]:rt 注册号
• 指令[15-11]:0
• 指令[10-6]:0
• 指令[5-0]:0x20
有人可以向一个完全的初学者(我)解释一下在图表上添加这样的指令的过程吗?感谢您抽出时间。
最佳答案
根据您的指令描述,您需要使用 R 中的寄存器作为输入将新值存储到 PC。现有架构不允许将使用寄存器 rs 和 rt 值计算出的地址移动为 PC 寄存器的输入。但是,允许将 R[rs] 和 R[rt] 的值移动到输出端口 V1 和 V2。您只需将 E(enable) 设置为 1。为了进一步实现,需要添加和移位。一种简单的方法是添加一个桶形移位器 block 来移位第二个输入或 V2。 V1 和 V2*8 作为 UAL 的输入。在 UAL 中启用添加算术运算。加法器的输出进入MD的Adr输入。应启用 MD。 MD的输出应该进入PC。由于现在有两个以上的 PC 输入,因此需要 2:1 多路复用器。 Controller 应生成五个控制位。一个使能 R(寄存器文件),一个使能 3 位移位,另一个使能加法器,另一个使能 MD,另一个在 PC 之前设置复用器控制,最后一个使能 PC 的 LD(加载)控制。
关于assembly - 向 MIPS 添加新指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62494922/