如何理解CMPXCHG比较并交换操作指令

这篇文章给大家介绍如何理解CMPXCHG比较并交换操作指令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

指令助记符 CMPXCHG

含义: 比较并交换指令
用法:目的操作数和累加操作数(AH、AL、EAX)进行比较,如果相等(ZF=1),则将源操作数复制到目的操作数中,否则将目的操作数复制到累加器中。
指令格式:

CMPXCHG reg reg
CMPXCHG mem reg

例子详解:

CMPXCHG CX,DX
1.指令执行前:(AX)=00FFH,(CX)=00FFH,(DX)=00EFH;
  指令执行后:(AX)=00FFH,(CX)=00EFH,(DX)=00EFH,ZF=1;
2.指令执行前:(AX)=00EEH,(CX)=00FFH,(DX)=00EFH;
  指令执行后:(AX)=00FFH,(CX)=00EFH,(DX)=00EFH,ZF=0;

流程图详解:

如何理解CMPXCHG比较并交换操作指令

关于如何理解CMPXCHG比较并交换操作指令就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。