向MIPS添加新命令
我在接受采访时,得到了以下问题: 我们希望使用以下语法创建一个名为向MIPS添加新命令,mips,Mips,我在接受采访时,得到了以下问题: 我们希望使用以下语法创建一个名为foo的新MIPS命令: foo-rt,rs,immediate 假设rt和rs不相等,立即可以是正、负或零,长度为16位 该命令执行以下操作: ADDI $rt, $0, immediate ADDI $rs, $rt, 4 rt=immediate rs=immediate+4 回答以下问题: 如果我们想在单周期MIPS中实现此命令,我们应该做哪些最小的更改?如果我们想要在多周期MIPS 使用基本的MIPS命令创建的
foo
的新MIPS命令:
foo-rt,rs,immediate
假设rt
和rs
不相等,立即
可以是正、负或零,长度为16位
该命令执行以下操作:
ADDI $rt, $0, immediate
ADDI $rs, $rt, 4
rt=immediate
rs=immediate+4
回答以下问题:
如果我们想在单周期MIPS
中实现此命令,我们应该做哪些最小的更改?如果我们想要在多周期MIPS
使用基本的MIPS
命令创建的伪命令,以创建foo
我认为应该在ALU
中对single
和multi
进行更改,但我错了。我没有机会回答第二个问题,因为我搞砸了第一个问题(我不知道答案)。我希望他们能再给我一次机会,所以现在我正在努力学习这些材料。如何回答这些问题?对于第二个问题,可以通过以下方式给出伪指令:
ADDI $rt, $0, immediate
ADDI $rs, $rt, 4
- 首先,您要将
rt
设置为immediate
值,这可以通过向immediate
添加一个零并将该值写回rt
来实现李>
- 其次,您需要将4添加到
immediate
并将其写回rs
,注意immediate
值已经存储在rt
寄存器中(根据前面的指令),现在您需要在rt
中获取值并向其添加立即值(即4),并将结果写回rs
李>
它被称为命令,而不是命令。不,您不能向任何不可编程硬件添加任意指令。伪指令是不同的,因为它就像macros@phuclv这是一个理论问题——从创造者的角度来看。当然,我们不会将此指令添加到MIPS中,只是理论上。这里只是猜测,但对于单个周期,您需要添加对回写两个寄存器的支持。对于多周期,您不需要这样做。用基本指令实现它应该很简单,你对此没有问题,对吗?