调用加载双字指令时,哪些控制线asserted/set变为1?

What control lines are asserted/set to 1 when a load double word instruction is called?

使用这张图,我正在查看这条指令以确定需要哪些控制线。

ld x5, 40(x9)

x5 = 0x000000ff

x9 = 0x00000fff

我很好奇哪些控制线(RegWrite、MemRead、MemWrite、MemtoReg、Branch、Zero、ALUSrc)被断言或设置为 1 以便此指令 运行,以及为什么我理解这些部分load double 指令的一部分是 ld RT, Disp(RA) - 但是执行需要什么,为什么?谢谢 - 这些东西的资源(对我来说有意义)在互联网上非常有限。

是一条LOAD指令,将寄存器x9的内容加上40,计算出要读取的内存地址,结果存入寄存器x5.

  1. 指令正在写入寄存器,因此断言 RegDstRegWrite
  2. 需要指令将40添加到x5的内容中。将 ALUSrc 设置为 1 到 select 40 作为来源之一。
  3. 断言 MemRead 作为内存读取。还要将 MemtoReg 设置为 1,以便 mux 将从内存而不是 ALU 获取数据。