インテル アーキテクチャで CMPXCHG の前にロック プレフィックスが必要なのはなぜですか。参照用に参照して ください http://courses.engr.illinois.edu/ece390/archive/spr2002/books/labmanual/inst-ref-cmpxchg.html
ロックを使用しないとどうなるかわかりません。値を eax にロードしてから LOCK CMPXCHG を実行するまでの間、eax への値のロードと LOCK CMPXCHG は 2 つの命令であるため、ロック プレフィックスに関係なく値が変更される可能性があるためです。
CMPXCHG を使用しないと、最悪の事態が発生する可能性があります。