Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 仅使用sll和srl确保最左边的16位为零?_Assembly_Mips - Fatal编程技术网

Assembly 仅使用sll和srl确保最左边的16位为零?

Assembly 仅使用sll和srl确保最左边的16位为零?,assembly,mips,Assembly,Mips,我试图找到一种方法,确保寄存器最左边的16位为零,而不影响最右边的16位,仅使用sll和srl 我已经玩了好几个小时了,但是没有成功。我能够确保最左边的位为零,但我不能在不影响最右边的位的情况下,仅使用sll/srl 第一个sll 16。这导致右16位为零,右16位移到左16位。然后是srl16。这会将您想要的16位移回最右边的16位,并将0移回最左边的16位。提示:您可以更改最右边的位,但您可以做些什么来反转它?谢谢您的回复。我不确定,我不知道汇编中有一个“反向”操作,而且我正在尝试仅使用sl

我试图找到一种方法,确保寄存器最左边的16位为零,而不影响最右边的16位,仅使用sll和srl


我已经玩了好几个小时了,但是没有成功。我能够确保最左边的位为零,但我不能在不影响最右边的位的情况下,仅使用sll/srl

第一个sll 16。这导致右16位为零,右16位移到左16位。然后是srl16。这会将您想要的16位移回最右边的16位,并将0移回最左边的16位。

提示:您可以更改最右边的位,但您可以做些什么来反转它?谢谢您的回复。我不确定,我不知道汇编中有一个“反向”操作,而且我正在尝试仅使用sll/srl来完成此操作:/我没有说汇编中有一个
reverse
操作。但是,使用
sll
slr
可以移动(如您所说,影响)最右边的位。但是,也有可能在/other/方向上影响它们——只使用您拥有的两条指令。当然,如果您不限制自己使用
sll
srl
,您可以在一条指令中实现这一点:
lui$t0,0
(加载上限立即数)。Aww。。我试图让OP进入“啊哈!”他得到它的那一刻。