处理器设计,信号值
Processor design, signal values
我的解决方案:
第 3 行:1:0x1 或 0x0、2:未知、3:未知、4:$t1、5:$t0、6:$a0、7:$t0、0x0
第 4 行:1:未知,2:未知,3:未知,4:$t0,5:未知,6:未知,7:未知,8:0x1
这是否完全正确?我该如何解决这个问题?我有点失落。
关于第 3 行,slt
:
路径 1:是的,该值为 0 或 1。
我不知道您的课程作业是什么,但是第 3 行 slt
和路径 2 和 3 的值是已知的。
对于路径2,slt
指令确实不读写数据内存,但这并没有改变我们仍然可以知道WD是什么,而且,它将是值 $a0
寄存器.
对于路径 3,这是 slt
机器代码指令的符号扩展立即数。当然,slt
指令是 R 型指令,不是 I 型指令,但那里的硬件并不关心——它仍然会符号扩展 R 型指令的低 16 位(解释它好像它是一个 I 型),只是在不久之后丢弃或忽略该工作。为了确定该路径的值,我们必须知道指令的机器代码值,恰好是 0x0124402a。因此,402a 将被符号扩展为 32 位,这就是路径 3 上的值(由于 ALUSrc
选择寄存器输出而未使用)。
对于路径 4,您声明 $t1
,这是正确的,但让我们具体地说 中的值 $t1
注册.
对于路径 5,您声明:$t0
,6 — 我不确定您的意思,但这是一个 5 位路径,它是一个寄存器名称,因此它将是 的姓名 $t0
注册,即8.
对于路径 6,您声明:$a0
,7 — 再次不确定您的意思,但这也是一个 5 位路径,它是一个寄存器名称,因此它将是 的名称 $a0
寄存器 ,即 4。(我们还可以注意到,由于 RegDst
为真,此路径被忽略。)
最后,路径 7 也是一个 5 位路径,它将是 的名称 $t0
寄存器 ,这是 8.
我的解决方案:
第 3 行:1:0x1 或 0x0、2:未知、3:未知、4:$t1、5:$t0、6:$a0、7:$t0、0x0
第 4 行:1:未知,2:未知,3:未知,4:$t0,5:未知,6:未知,7:未知,8:0x1
这是否完全正确?我该如何解决这个问题?我有点失落。
关于第 3 行,slt
:
路径 1:是的,该值为 0 或 1。
我不知道您的课程作业是什么,但是第 3 行 slt
和路径 2 和 3 的值是已知的。
对于路径2,slt
指令确实不读写数据内存,但这并没有改变我们仍然可以知道WD是什么,而且,它将是值 $a0
寄存器.
对于路径 3,这是 slt
机器代码指令的符号扩展立即数。当然,slt
指令是 R 型指令,不是 I 型指令,但那里的硬件并不关心——它仍然会符号扩展 R 型指令的低 16 位(解释它好像它是一个 I 型),只是在不久之后丢弃或忽略该工作。为了确定该路径的值,我们必须知道指令的机器代码值,恰好是 0x0124402a。因此,402a 将被符号扩展为 32 位,这就是路径 3 上的值(由于 ALUSrc
选择寄存器输出而未使用)。
对于路径 4,您声明 $t1
,这是正确的,但让我们具体地说 中的值 $t1
注册.
对于路径 5,您声明:$t0
,6 — 我不确定您的意思,但这是一个 5 位路径,它是一个寄存器名称,因此它将是 的姓名 $t0
注册,即8.
对于路径 6,您声明:$a0
,7 — 再次不确定您的意思,但这也是一个 5 位路径,它是一个寄存器名称,因此它将是 的名称 $a0
寄存器 ,即 4。(我们还可以注意到,由于 RegDst
为真,此路径被忽略。)
最后,路径 7 也是一个 5 位路径,它将是 的名称 $t0
寄存器 ,这是 8.