CMPXCHG8B - 比较并交换 8 字节
说明
比较 EDX:EAX 中的 64 位值与操作数(目标操作数)。如果这两个值相等,则将 ECX:EBX 中的 64 位值存储到目标操作数。否则,将目标操作数的值加载到 EDX:EAX。目标操作数是 8 字节内存位置。对于一对 EDX:EAX 与 ECX:EBX 寄存器,EDX 与 ECX 包含 64 位值的 32 个高位,EAX 与 EBX 包含 32 个低位。
此指令可以配合 LOCK 前缀使用,此时指令将以原子方式执行。为了简化处理器的总线接口,目标操作数可以不考虑比较结果而接收一个写入周期。如果比较失败,则写回目标操作数;否则,将源操作数写入目标。(处理器永远不会只产生锁定读取而不产生锁定写入)。