我在接受采访时得到了以下问题:
我们希望使用以下语法创建一个名为
foo
的新MIPS命令:
foo rt, rs, immediate
假设
rt
和rs
不相等,immediate
可以是正数,负数或零,长度为16
位。该命令执行以下操作:
rt = immediate
- 醇>
rs = immediate + 4
回答以下问题:
- ,该怎么办?
如果我们想在
single-cycle MIPS
中实施此命令,我们应该做哪些微小的更改?如果我们想要Multi-cycle MIPS
?- 醇>
使用基本
MIPS
命令创建伪命令以创建foo
。
我认为更改应该只在ALU
single
和multi
中,但我错了。我没有机会回答第二个问题,因为我吹了第一个问题(我不知道答案)。我希望他们再给我一次机会,所以我现在正试着研究这些材料。我该如何回答这些问题?
答案 0 :(得分:1)
对于第二个问题,可以通过以下方式给出伪指令:
ADDI $rt, $0, immediate
ADDI $rs, $rt, 4
rt
设置为immediate
值,这可以通过向immediate
添加零并将值写回rt
来完成。 immediate
添加4并将其写回rs
,请注意immediate
值已存储在rt
寄存器中(由上一条指令),现在需要取rt
中的值并为其添加一个立即值(即4),并将结果写回rs
。