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