【问题标题】:What does this MIPs code mean?这个 MIP 代码是什么意思?
【发布时间】:2013-03-20 18:56:38
【问题描述】:

我正在努力寻找一个解释 MIPS 及其工作原理的好网站。

我试图理解的代码是:

SW 7000(R0),R1

我知道 SW 表示保存字,它是将 R1 的值保存到内存地址 7000。(R0)有什么意义?它有什么作用?

对于我遇到的类似问题,是否有很好的资源?

谢谢!

【问题讨论】:

  • MIPS 中没有名为“R0”或“R1”的寄存器。正确的名字是$name,如$0, $7, $a0, $s1

标签: assembly mips


【解决方案1】:

这里的R0是一个寄存器。将其放在括号中表示您使用的是间接寻址(即:像指针一样):不是存储在 R0 中,而是存储在 R0 中的地址中。

7000 表示偏移量。在这种情况下,您会将地址存储在 R0 + 7000 中。

【讨论】:

  • 在我使用的 MIPS 版本中,它说 R0 始终为 0。那么这段代码是不必要的吗?我可以做类似 SW 7000,R1 的事情吗?
  • 该指令需要一个寄存器,所以使用 r0 基本上意味着使用立即数作为地址...
【解决方案2】:

应该是这样的

SW R1, 7000(R0)

其中 R1 和 R0 是任意 MIPS 寄存器。

它将寄存器 R1 的内容读取为存储到有效内存地址7000+R0。 例如。如果 R1 包含值 10,而 R0 包含值 1192,那么它会将一个值为 10 的字(32 位)存储到内存地址 8192 中。

【讨论】:

猜你喜欢
  • 2011-05-28
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多