【问题标题】:MIPS shift left/shift rightMIPS 左移/右移
【发布时间】:2014-05-07 13:50:17
【问题描述】:

我正在自学 MIPS 并遇到了这段代码:

or $t0 $z0 $t1
srl $t0 1 $t0
sll $t0 1 $t0
sub $t0 $t0 $t1

我感兴趣的部分是srl $t0 1 $t0sll $t0 1 $t0 这是正确的吗?正如我认为的那样,它会是srl $t0 $t0 1,n 值在最后。

另外,如果 $t1 包含 5,即 00000101,当我执行 srl 后跟 sll 时,我会得到如下结果: 00000101

srl : 00000010
sll : 00000100

所以 $t0 现在是 4?

然后子部分将是 5-4 即 1?

提前致谢

【问题讨论】:

    标签: assembly mips mips32 spim


    【解决方案1】:

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

    sll $t0 $t1 n
    

    (或srl)

    是的,你是对的,因为逻辑移位引入了 0,所以你的 5 最终会变成 4

    最后:

    sub $t0 $t0 $t1
    

    等价于 t0 = t0 - t1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多