3
IA32アセンブリ言語でワードのある位置のビットが1であるかどうかを確認するにはどうすればよいですか?IA32アセンブリ言語でビットをフェッチする方法は?
IA32アセンブリ言語でワードのある位置のビットが1であるかどうかを確認するにはどうすればよいですか?IA32アセンブリ言語でビットをフェッチする方法は?
Test
、のようなもの:
value = 000100h
mov eax, your_word
test eax, value
jnz was_set
NASM:
bt ax, <POS> ; test if bit at position is set: 1 means carry will be set 0 means carry will be unset
adc eax, 0 ; add 0 + carry to eax
あなたはまたjc
(キャリー・セットをジャンプ)jnc
(ジャンプが設定されていないキャリー)
を使用することができ、私はあなたの分岐ロジックを考えます's/jnz wasnt_set/jz wasnt_set /'または 's/jnz wasnt_set/jnz was_set /'おそらく? –
@Paul R:そうだよ、そうだよ。ありがとう。 –
単語は16ビットなので、ダブルワードの 'eax'ではなく' ax'を使う必要があります。 – DipSwitch