MIPS指令寄存器

时间:2015-10-08 02:21:54

标签: mips

  

如果位模式0x0C000000被放入指令寄存器,那么将执行什么MIPS指令?

我不确定指令寄存器对这个问题的意义以及它与位模式的关系。

2 个答案:

答案 0 :(得分:0)

通常缩写为指令寄存器或IR是执行代码的MIPS CPU架构的第一部分。加载到其中的位模式决定了OPCODE,源寄存器,目标寄存器和存储器偏移。

编译器/解释器将每种编程语言简化为二进制。二进制当然可以用传统的1和0表示,也可以用你在问题中提供的位模式HEX表示。

当特定命令被转换为它的二进制表示时,位模式的每个位都有意义。

MIPS是一种32位架构,所以有问题的位是[31 -0],其中0是最右边的位。 (我建议你也阅读Endianess)。你提供了一个16位的十六进制值,所以我用0的

填充最低位

转换示例

    0    C    0    0    0    0    0    0    0    0    0    0    0    0    0    0
  0000  1100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

这是一个J型指令,因此以下位表示:

opcode [31-25] 
target [24 -0]

话虽如此,你可以将二进制分组为

000011 000000000000000000000000

使用我链接到下面的资源,我们可以告诉操作码是JAL。

来自伯克利的link有用。

当我进入我的架构课程并且我经常使用它时,这link是来自同一本教科书的扫描。

答案 1 :(得分:0)

32位MIPS指令0x0C000000可以用二进制形式重写,如下所示:

000011 00000000000000000000000000
opcode target

这似乎是jal跳转和链接指令。执行时,它将使程序跳转到target中指定的地址。