Assembly 左移/右移
我在自学MIPS时遇到了以下代码:Assembly 左移/右移,assembly,mips,mips32,spim,Assembly,Mips,Mips32,Spim,我在自学MIPS时遇到了以下代码: or $t0 $z0 $t1 srl $t0 1 $t0 sll $t0 1 $t0 sub $t0 $t0 $t1 我感兴趣的是srl$t0 1$t0和sll$t0 1$t0这是正确的吗?正如我所想,它将是srl$t0$t01,最后是n值 另外,如果$t1包含5,即00000101,当我执行srl,然后执行sll时,我会得到如下结果: 00000101 那么t0美元现在是4美元 然后子部分是5-4,也就是1 提前感谢是的,通常有以下形式: sll $t0
or $t0 $z0 $t1
srl $t0 1 $t0
sll $t0 1 $t0
sub $t0 $t0 $t1
我感兴趣的是srl$t0 1$t0
和sll$t0 1$t0
这是正确的吗?正如我所想,它将是srl$t0$t01
,最后是n值
另外,如果$t1包含5,即00000101,当我执行srl,然后执行sll时,我会得到如下结果:
00000101
那么t0美元现在是4美元
然后子部分是5-4,也就是1
提前感谢是的,通常有以下形式:
sll $t0 $t1 n
(或srl)
是的,你是对的,因为逻辑移位引入了0,所以你的5会变成4
最后:
sub $t0 $t0 $t1
相当于t0=t0-t1
sub $t0 $t0 $t1