0

私は、これに対処するいくつかの質問がすでにあることを理解しています。しかし、私の質問はある種の違いがあります。レジスタに格納されている値 (16 進数) の LSB を取得する必要があるとします。例えば;

レジスタ $t0 に値 0xA4 が含まれている場合、値 4 を取得して格納する必要があります

レジスタ $t0 に値 0xBF が含まれている場合、値 F を取得して格納する必要があります

ANDビット単位の演算が 10 進数値に対して機能することを理解しています。LSBを取得する方法について、誰かが助けてくれますか?

敬具

4

2 に答える 2

2

次のように、LSB 自体を抽出する数値を簡単に AND できます。

0xA4 と 0x0F

と同じ (バイナリ)

10100100b および 00001111

これは基本的に、2 進数から最後の 4 桁のみが抽出され、それが必要な LSB であることを意味します。

于 2013-03-16T22:23:51.367 に答える
1

すべてのバイナリ操作は、純粋な数値であるマスクに沿って汎用レジスタで機能します (基になる基底表現に関係なく)
x86 は MIPS ではありませんが、次のようなものが必要です。

and EAX, 0xF
于 2013-03-16T22:20:12.057 に答える