MIPS指令sll的正确语法是什么?

时间:2015-10-22 23:08:05

标签: mips sll

移位金额应该是立即值,还是存储在寄存器中的值?两者都有效吗?

我有不同的网站告诉我不同​​的事情,我很困惑。

根据我的研究,sll(shift left logical)指令应该像这样使用:

  sll $d, $t, h

这使得$ d = $ t左移h次。

我被告知h应该是一个立即值,但我想知道寄存器是否可以用作第三个参数,并且该寄存器中的值用作移位量。那会有用吗?

2 个答案:

答案 0 :(得分:3)

你是对的。

sll是特定的,因为它是R-format指令,其中只使用了两个寄存器,rd和rs(目标和源),并且shamt字段是立即值(常量)。

还有另一条指令sllv使用第三个寄存器,您可以在其中指定按变量(寄存器)移位。

答案 1 :(得分:0)

让我清楚一点,MIPS 32位中的左移逻辑具有以下语法:

<强> SLL destination, Target, Shift amount(Should be immediate value)

如果在8086中如果我们想要移位量超过1,我们必须使用寄存器来存储移位量的值!