80x86上的原子位域操作?

Ach*_*tis 1 x86 assembly atomic operation bit

80x86是否有原子测试和设置单词的各个位的指令?

Nia*_*all 7

如果您的意思是测试并将位修改为单个原子操作,则可以使用LOCK前缀将位测试指令(BT,BTS,BTR和BTC)全部设为原子.

如果您的意思是原子地测试一点,然后将原子位设置为单独的操作,则可以使用标准原子读取来测试该位,并且可以使用LOCK OR,LOCK AND,LOCK XOR指令来修改该位.

如果您需要更复杂的东西,例如测试一位然后设置不同的位,则必须在重试循环中使用标准的比较和交换CMPXCHG指令.