2017-10-09 224 views
0

我目前使用SPIM(QTSpim)来了解MIPS。我对SPIM命令及其工作方式有几个疑问。 1)据我所知,MIPS通常使用16位来显示数值,但为什么QTSpim中的寄存器只有8位?MIPS sra SPIM指令

2)注册$ 11(t3),原始值为10.机器执行[sra $ 11,$ 11,2]指令后,数值从10变为4.这是怎么发生的?当10只有2位时,2个位置如何向右移动?

谢谢。

+0

哪个基地你在跟踪?十进制10是1010,二进制有4位 –

+0

@LưuVĩnhPhúc这实际上是我问的问题的一部分,如果不清楚,对不起。看来QTSpim使用十六进制。但我不确定为什么[sra $ 11,$ 11,2]会改变10到4,即使它是二进制的。如果它是二进制的,结果不应该是0010吗? – Sean

回答

1

1)不知道你有什么想法。 QtSpim模拟一个基于MIPS32的机器,所以通用寄存器是32位的。

2)10个十进制数是10000个二进制数。右移两位,得到100个二进制数,即四位小数。你也可以把它看作十六进制除以4,因为sraN位是一个(有符号)除以2^N

+0

这帮了很多,谢谢。我应该知道我看到的10是10进制,这在二进制中确实是10000。 – Sean