移位量应该是即时值,还是存储在寄存器中的值?两者都有用吗?
我有不同的网站告诉我不同的事情和困惑。
根据我的研究,sll (移位左逻辑)指令应该这样使用:
sll $d, $t, h这使得$d = $t左移h倍。
我被告知h应该是一个即时值,但我想知道是否可以使用寄存器作为第三个参数,而寄存器中的值用作移位量。这样也行吗?
发布于 2015-10-22 23:22:27
你是对的。
sll是特定的,因为它是一个R格式指令,其中只使用两个寄存器,rd和rs (目标和源),而shamt字段是一个直接值(一个常量)。
还有另一个指令sllv,它使用第三个寄存器,您可以在其中指定shift by变量(寄存器)。
发布于 2017-02-26 18:33:47
让我澄清MIPS 32位中的点左移逻辑有以下语法:
SLL目标,目标,移位量(应该是即时值)
在哪里,如在8086,如果我们想要移动数量超过1,我们必须使用一个寄存器来存储值的移位量!
https://stackoverflow.com/questions/33292261
复制相似问题