【问题标题】:(ASM) what does "set bit 1" mean?(ASM) “设置位 1”是什么意思?
【发布时间】:2013-02-28 15:11:10
【问题描述】:

我正在使用一个网站来学习 MIPS 汇编。

练习 2

在每个寄存器 $1 到 $7 中设置相应的位。 也就是说, 在寄存器 1 中设置位 1(并将其余部分清零),在 $2 中设置位 2 (并将其余部分清零),依此类推。 仅使用一个 ori 程序中的指令,设置寄存器 $1 中的位。 从...开始: '原价 $1,$0,0x01' 不要使用除此之外的任何 ori 指令。 注意:寄存器的第 1 位是右数第二个,即 (无符号二进制)对应于二的第一个幂。

有人可以解释一下吗?

将0x02放入寄存器1是否正确? (我不能使用ori,所以我会使用左移将0x01变成0x02)

这使得寄存器 1 == 10(二进制)。所以寄存器1的第1位是1,其他位是0?

我很困惑,因为 MIPS 模拟器没有显示前导零。所以我不知道我这样做是否正确。

【问题讨论】:

    标签: assembly mips


    【解决方案1】:

    是的,你的解释是正确的。

    ori $1,$0,0x01  # Initialize $1
    sll $2,$1,2     # Set bit 2 or $2
    sll $3,$1,3     # Set bit 3 of $3
    ...             # ..and so on for $4..$7
    sll $1,$1,1     # Finally set bit 1 of $1
    

    或者:

    ori $1,$0,0x01
    sll $1,$1,1
    sll $2,$1,1
    sll $3,$2,1
    ...
    

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 2013-02-14
      • 2018-11-24
      • 1970-01-01
      相关资源
      最近更新 更多