Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
80x86 是否有原子测试和设置单词的各个位的指令?
如果您的意思是将位测试和修改作为单个原子操作,那么位测试指令(BT、BTS、BTR 和 BTC)都可以通过使用 LOCK 前缀来实现原子操作。
如果您的意思是原子地测试位,然后将位原子地设置为单独的操作,您可以使用标准原子读取来测试位,并且可以使用 LOCK OR、LOCK AND、LOCK XOR 指令来修改位。
如果您需要更复杂的东西,例如测试一位然后设置不同的位,您将不得不在重试循环中使用标准的比较和交换 CMPXCHG 指令。