如果位模式0x0C000000被放入指令寄存器,那么将执行什么MIPS指令?
我不确定指令寄存器对这个问题的意义以及它与位模式的关系。
答案 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
中指定的地址。