向MIPS添加新命令

时间:2018-06-15 12:40:37

标签: mips

我在接受采访时得到了以下问题:

  

我们希望使用以下语法创建一个名为foo的新MIPS命令:

     

foo rt, rs, immediate

     

假设rtrs不相等,immediate可以是正数,负数或零,长度为16位。

     

该命令执行以下操作:

     
      
  1. rt = immediate

  2.   
  3. rs = immediate + 4

  4.         

    回答以下问题:

         
        
    1. 如果我们想在single-cycle MIPS中实施此命令,我们应该做哪些微小的更改?如果我们想要Multi-cycle MIPS

    2. ,该怎么办?   
    3. 使用基本MIPS命令创建伪命令以创建foo

    4.   

我认为更改应该只在ALU singlemulti中,但我错了。我没有机会回答第二个问题,因为我吹了第一个问题(我不知道答案)。我希望他们再给我一次机会,所以我现在正试着研究这些材料。我该如何回答这些问题?

1 个答案:

答案 0 :(得分:1)

对于第二个问题,可以通过以下方式给出伪指令:

ADDI $rt, $0, immediate
ADDI $rs, $rt, 4 
  • 首先,您要将rt设置为immediate值,这可以通过向immediate添加零并将值写回rt来完成。
  • 其次,您需要向immediate添加4并将其写回rs,请注意immediate值已存储在rt寄存器中(由上一条指令),现在需要取rt中的值并为其添加一个立即值(即4),并将结果写回rs