6

プログラムを作成していますが、ビット3と6が設定されているかどうかを確認する必要があります。単語を回転したり、左右にシフトしたりできることを知っています。

しかし、どうすれば個々のビットの状態にアクセスできますか?and / xorのようなビット演算子を使用しますか?

4

3 に答える 3

5

ビット単位で、0x08と0x40を使用します(ビット0が最下位ビットであると想定)。これを行うには、andi命令を使用します。

$ t0がテストする値である場合:

andi $t1, $t0, 0x08
andi $t2, $t0, 0x40

ビット3が設定されている場合、$ t1は非ゼロになり、ビット6が設定されている場合、$t2は非ゼロになります。

于 2009-04-15T02:06:03.297 に答える
4

はい、ビット単位の演算子を使用します。ビット3と6のみが設定されているビットマスクとANDをとることができます。次に、ゼロとの比較を行います。

(私は長い間アセンブラをしていません)のようなもの:

and     r2, r1, 0x48  # r2 = r1 & 0x48
cmp     r2, 0x48
jz     zzzzzz   #jmp to zzzzz if bits 6 and 3 are set
于 2009-04-15T02:10:12.257 に答える
2

MIPSアセンブリで単一ビットをテストするための1つの手法は、目的のビットを最上位ビット位置にシフトし、bltz/bgezを使用してビットの状態をテストすることです。これにより、andi命令を使用して目的のビットを選択できない場合に、命令が保存されます。

于 2009-04-15T02:34:54.337 に答える