1

私はやろうとしています

and eax, 0fh

と私は0fh手段を知っています15。から

and eax, 0fh

の最後の 4 ビットを除くすべてをクリアすることになっていますeax。(32-4)=28 ビットの 1 と 4 つの 0 を取得する方法がわかりません。

4

3 に答える 3

1

28 個の 1 ビットの後に 4 個の 0 ビットが続くわけではありません。これは逆です。0fhは:

000...0001111

and1ビットで何かをすると、その何かが返されます。and0 ビットを使用すると、常にゼロになります (ビット単位の演算子に関する論文については、こちらを参照してください)

ANDしたがって、 で数値を入力000..001111すると、右端の 4 ビットを除くすべてがクリアされます。

于 2013-07-09T01:26:16.110 に答える
1

簡潔にするために、代わりにこの命令を見てみましょう。

and al, 0fh

0fh00001111バイナリに変換されます。

各ビットの内容に関係なくx、これはバイナリで得られるものです。

al  xxxxxxxx
0fh 00001111
------------
and 0000xxxx

具体例:

al  01010101
0fh 00001111
------------
and 00000101
于 2013-07-09T01:27:48.737 に答える