Assembly bts、btr、btc指令是否是所有指定内存操作数的原子指令?

Assembly bts、btr、btc指令是否是所有指定内存操作数的原子指令?,assembly,x86,Assembly,X86,还有什么要说的?只是,x86bts、btr、btc指令是否在或多或少的当前芯片(PIII+)上用于所有已签名内存操作数的原子指令 特别是。当ebx+n为偶数时,下列原子是否为偶数 BTS WORD PTR [ebx + n] 不,像这样的读修改写指令从来都不是原子指令。这样的指令被转换成微操作,即执行引擎实际执行的类似RISC的指令 你可以使它原子化,给它加锁前缀。查看第2A卷了解背景信息。关于cmpxchg和xchg mem,reg说明如何?他们不也是原子吗?我太懒了。如果你知道真相,请回答

还有什么要说的?只是,x86
bts
btr
btc
指令是否在或多或少的当前芯片(PIII+)上用于所有已签名内存操作数的原子指令

特别是。当
ebx+n
为偶数时,下列原子是否为偶数

BTS WORD PTR [ebx + n]

不,像这样的读修改写指令从来都不是原子指令。这样的指令被转换成微操作,即执行引擎实际执行的类似RISC的指令


你可以使它原子化,给它加锁前缀。查看第2A卷了解背景信息。

关于
cmpxchg
xchg mem,reg
说明如何?他们不也是原子吗?我太懒了。如果你知道真相,请回答。@HansPassant,这是否意味着没有办法避免这100个周期被
LOCK
消耗,以实现甚至两条指令的关键部分?太可怕了!唉。CMPXCHG要求锁是原子的,XCHG是隐式锁定的。@HansPassant,谢谢!因此,我需要始终在
cmpxchg
前面加上
lock
,以便在多核处理器(Core2Duo+)上执行正确的操作?