3
如何检查,如果字中的某些位置的比特为1与IA32汇编语言?如何在IA32汇编语言中读取一点?
如何检查,如果字中的某些位置的比特为1与IA32汇编语言?如何在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 /'也许? –
@保罗R:哎呀,是的,你说得很对。谢谢。 –
一个单词是16位,所以你将不得不使用'ax'而不是'eax'这是一个双字。 – DipSwitch