如何在 MIPS 中访问一个字的各个位的状态?

Mit*_*rax 6 assembly bit-manipulation mips

我正在编写一个程序,我需要确定是否设置了第 3 位和第 6 位。我知道我可以旋转一个单词或左/右移动它。

但是我如何访问单个位的状态?我是否使用像和/xor 这样的按位运算符?

Mic*_*ael 5

您可以使用 0x08 和 0x40(假设位 0 是最低位)进行按位运算。您将使用 andi 指令来执行此操作。

如果 $t0 是您要测试的值:

andi $t1, $t0, 0x08
andi $t2, $t0, 0x40
Run Code Online (Sandbox Code Playgroud)

如果设置了第 3 位,$t1 将为非零,如果设置了第 6 位,则 $t2 将非零。