2009-11-17 77 views

回答

7

如果您的意思是測試並修改一個位爲單個原子操作,那麼位測試指令(BT,BTS,BTR和BTC)都可以使用LOCK前綴進行原子化。

如果您的意思是原子化測試,然後將原子位設置爲單獨的操作,則可以使用標準原子讀取測試該位,並且可以使用LOCK OR,LOCK和LOCK XOR指令修改該位。

如果您需要更復雜的內容,例如測試一個位然後設置一個不同的位,則必須在重試循環中使用標準的比較和交換CMPXCHG指令。