MIPS左移/右移

时间:2014-05-07 13:50:18

标签: 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 $t0 1最后是n值。

另外如果$ t1包含5,这是00000101,当我做srl后跟sll时,我最终会得到这样的结果: 00000101

srl : 00000010
sll : 00000100

所以$ t0现在是4?

然后子部分为5-4,即1?

提前致谢

1 个答案:

答案 0 :(得分:1)

是的,通常它有以下形式:

sll $t0 $t1 n

(或srl)

并且是的,你是对的,因为逻辑转换会引入0'所以你的5将最终成为4

最后:

sub $t0 $t0 $t1

相当于t0 = t0-t1