Mips 寄存器指令解码

Mips 寄存器指令解码,mips,decode,instruction-set,Mips,Decode,Instruction Set,我已经解码了下面的三个MIPS注册表,但我不确定我是否正确应用了这个理论。 有没有人能证实我的答案,也许能解释一下第一个地址的解码 0010 34422345 ori $2 , $2 ,0 x2345 0018 24020007 li $2 ,7 002c 00621021 addu $2 , $3 , $2 1st=操作码:13;卢比:18;rt:18 第二个=I型:操作码8;18卢比;地址7 第三个=R类型:操作码0;18卢比;rt-19;第18条 你的数字看起来有点不对劲。以下是

我已经解码了下面的三个MIPS注册表,但我不确定我是否正确应用了这个理论。 有没有人能证实我的答案,也许能解释一下第一个地址的解码

0010 34422345 ori $2 , $2 ,0 x2345

0018 24020007 li $2 ,7  

002c 00621021 addu $2 , $3 , $2
1st=操作码:13;卢比:18;rt:18

第二个=I型:操作码8;18卢比;地址7


第三个=R类型:操作码0;18卢比;rt-19;第18条

你的数字看起来有点不对劲。以下是我的解释:

1) I型

0x34422345
001101    00010     00010      0010001101000101  (binary)
 op (13)    rs (2)   rt (2)       imm (0x2345)

=> ori $v0,$v0,0x2345

2) I型


3) R型



操作码/函数号的值。

Ah,但是$2的值不应该是18吗?参考我的书。。再说一遍,我不确定如何解释材料。如果第一条指令中的
rs
rt
为18,则指令词必须为
0x36522345
。但是,根据您的问题,它是
0x3422345
,这使得
rs
rt
2(正如您在我将指令词分解为各个部分时所看到的)。
0x24020007
001001        00000    00010    0000000000000111
 op (9=addiu)  rs (0)   rt (2)    imm (7)

=> addiu $v0,$zero,7
0x00621021
000000   00011   00010    00010    00000     100001
 op (0)   rs (3)  rt (2)   rd (2)   shift   function (33)

=> addu $v0,$v1,$v0