Документация Intel на
говорит
"Эта инструкция может использоваться с префиксом LOCK, чтобы позволить инструкции выполняться атомарно."
Мой вопрос
-
Может ли CMPXCHG работать с адресом памяти? Из документа, похоже, нет, но может ли кто-нибудь подтвердить, что работает только с фактическим VALUE в регистре, а не с адресом памяти?
-
Если CMPXCHG не является атомарным, а уровень уровня CAS на высоком уровне должен быть реализован через LOCK CMPXCHG (с префиксом LOCK), какова цель введения такой инструкции вообще?