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

MIPS指令sll的正确语法是什么?,mips,sll,Mips,Sll,移位量是立即值还是存储在寄存器中的值?两者都有效吗 我有不同的网站告诉我不同的事情,我很困惑 根据我的研究,sll(左移逻辑)指令的使用方式如下: sll $d, $t, h 这使得$d=$t向左移动了h次 我被告知h应该是一个立即数,但我想知道是否可以将寄存器用作第三个参数,并将寄存器中的值用作移位量。那也行吗?你说得对 sll的特殊性在于,它是一条只使用两个寄存器的指令,即rd和rs(目标和源),而shamt字段是一个立即数(常数) 还有另一条指令sllv,它使用第三个寄存器,您可以在

移位量是立即值还是存储在寄存器中的值?两者都有效吗

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

根据我的研究,sll(左移逻辑)指令的使用方式如下:

  sll $d, $t, h
这使得$d=$t向左移动了h次

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

你说得对

sll
的特殊性在于,它是一条只使用两个寄存器的指令,即rd和rs(目标和源),而shamt字段是一个立即数(常数)

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

您是正确的

sll
的特殊性在于,它是一条只使用两个寄存器的指令,即rd和rs(目标和源),而shamt字段是一个立即数(常数)


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

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


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

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


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

注意:
sslv
是一条MIPS32r2指令。MIPS体系结构的MIPS32r2版本于2002年推出,因此SPIM和MARS等常用教育工具尚不支持它。注意:
sslv
是一条MIPS32r2指令。MIPS体系结构的MIPS32r2版本于2002年推出,因此像SPIM和MARS这样的常用教育工具还不支持它。