Assembly 加载/存储指令(mips管道)中的Rd(目标寄存器)值

Assembly 加载/存储指令(mips管道)中的Rd(目标寄存器)值,assembly,mips,cpu-registers,Assembly,Mips,Cpu Registers,我正在使用管道MIPS处理器,我有以下程序: #$a0=0x 805F E371 #$t0=0x 8007 4821 lw$t0,($a0) 加载指令正在ID阶段运行。在ID/EX寄存器中有许多保存的寄存器。其中一个寄存器称为寄存器目标(Rd)。我知道Rs寄存器包含$a0的值,Rt包含$t0的值 问题是:Rd里面有什么?我想0是因为它没有被使用,但我不确定。它可能是0的另一个原因吗?它可能是与0不同的值吗?lw是一条I型指令,它使用两个寄存器操作数和一个立即数操作数 31-26

我正在使用管道MIPS处理器,我有以下程序:

#$a0=0x 805F E371
#$t0=0x 8007 4821
lw$t0,($a0)
加载指令正在ID阶段运行。在ID/EX寄存器中有许多保存的寄存器。其中一个寄存器称为寄存器目标(Rd)。我知道
Rs
寄存器包含
$a0
的值,
Rt
包含
$t0
的值


问题是:
Rd
里面有什么?我想
0
是因为它没有被使用,但我不确定。它可能是
0
的另一个原因吗?它可能是与
0
不同的值吗?

lw
是一条I型指令,它使用两个寄存器操作数和一个立即数操作数

   31-26     25-21   20-16      15-0
 |  op    |  rs    |  rt    |    imm   |
  6 bits    5 bits   5 bits     16 bits
rs
imm
始终用作源操作数

   31-26     25-21   20-16      15-0
 |  op    |  rs    |  rt    |    imm   |
  6 bits    5 bits   5 bits     16 bits
rt
用作目标寄存器,您知道它包含什么

您可能会将其与使用
rd
作为目标操作数的R-type混淆

这是R型的

   31-26    25-21    20-16    15-11   10-6    5-0
|   op    |  rs    |  rt    |  rd   | shamt | funct |
  6 bits    5 bits   5 bits  5 bits  5 bits  6 bits

亚当!谢谢你的回答。我知道lw指令中没有rd寄存器,但一个关于寄存器值的练习问我lw指令中的rd值是多少。正确的答案是00000(二进制),有点奇怪。但也许,现在我明白了原因:Rd寄存器占据指令的11-15个位置。所以如果没有Rd,我想我应该多取5个能指位的偏移量,因为它们在11-15位。。这可能是一个正确的想法吗?
rd
lw
中没有使用,因为它很简单,这就是为什么您的答案中可能会告诉它是
00000
。如果您想知道每个寄存器操作数的确切位数,请查看MIPS参考表。当然,您可以根据“0x805FE371”计算这些位数,但仍然会混淆R型和I型。在I型中,20-16位用作目标寄存器。对于
lw
,我们没有任何11-15。我更新了我的答案,请看。不,亚当,我知道了!我知道,R-type有
rt
作为目标寄存器。这就是让我困惑的地方。只有两种方式
rd
的值为00000,即它不在使用中或是11-15位的偏移量。我可能会写信给我的教授,我会给你回信让你知道答案!谢谢你的时间,亚当!这是MIPS参考表的链接,你可以自己检查一下。很容易理解。