MIPS指令寄存器
MIPS Instruction Register
If the bit pattern 0x0C000000 is placed into the Instruction Register, what MIPS instruction will be executed?
我不确定这个问题对指令寄存器的含义以及它与位模式的关系。
指令寄存器或 IR 通常缩写为 MIPS CPU 架构中执行代码的第一部分。加载到其中的位模式决定了操作码、源寄存器、目标寄存器和内存偏移量。
每种编程语言都被 compiler/interpreter 简化为二进制。二进制当然可以用传统的 1 和 0 或十六进制表示,这是您在问题中提供的位模式。
当一个特定的命令被转换成它的二进制表示时,位模式的每一位都有意义。
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 是我在建筑学课程中经常使用的同一本教科书的扫描件。
32位MIPS指令0x0C000000
可以用二进制重写成这样:
000011 00000000000000000000000000
opcode target
这似乎是 jal
跳转和 link 指令。执行时会导致程序跳转到target
.
中指定的地址
If the bit pattern 0x0C000000 is placed into the Instruction Register, what MIPS instruction will be executed?
我不确定这个问题对指令寄存器的含义以及它与位模式的关系。
指令寄存器或 IR 通常缩写为 MIPS CPU 架构中执行代码的第一部分。加载到其中的位模式决定了操作码、源寄存器、目标寄存器和内存偏移量。
每种编程语言都被 compiler/interpreter 简化为二进制。二进制当然可以用传统的 1 和 0 或十六进制表示,这是您在问题中提供的位模式。
当一个特定的命令被转换成它的二进制表示时,位模式的每一位都有意义。
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 是我在建筑学课程中经常使用的同一本教科书的扫描件。
32位MIPS指令0x0C000000
可以用二进制重写成这样:
000011 00000000000000000000000000
opcode target
这似乎是 jal
跳转和 link 指令。执行时会导致程序跳转到target
.