2013-03-20 155 views
0

我正在努力寻找解释MIPS及其工作原理的好网站。这个MIP代码是什么意思?

我试图理解的代码是:

SW 7000(R0),R1 

我知道SW意味着节省词,它是R1的值保存到内存地址7000什么是(R0)的点?它有什么作用?

有没有很好的资源来解决我遇到的类似问题?

谢谢!

+0

在MIPS中没有名为“R0”或“R1”的寄存器。正确的名称是$ name,例如$ 0,$ 7,$ a0,$ s1 – 2013-10-02 06:33:18

回答

1

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

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

+0

在我使用的MIPS版本中,它表示R0始终为0.此代码是否不必要?我可以做类似SW 7000,R1吗? – Stephen 2013-03-20 19:12:37

+0

该指令需要一个寄存器,所以使用r0基本上意味着使用立即作为地址... – 2013-03-20 19:13:35

+0

非常感谢你! – Stephen 2013-03-20 19:17:16

1

看起来它应该是

SW R1, 7000(R0) 

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

它将读取作为存储寄存器R1的内容到有效内存地址7000+R0。 例如如果R1包含值10并且R0包含值1192,则它将存储具有值10的字(32位)到存储器地址8192中。

+0

没有它写的方式是正确的 – Stephen 2013-03-20 19:12:59

+0

没有。Gusbro没有错。请参阅http://en.wikipedia.org/wiki/MIPS_architecture#Integer。 – markgz 2013-03-20 22:45:56

+0

实际上它应该是'sw $ 1,7000($ 0)' – 2013-10-02 06:32:26