汇编指令CMPXCHG的用法疑惑
有题如下:CMPXCHG CX,DX
如果指令执行前 (AX)=2300H,(CX)=2300H.(DX)=2400H
则指令执行后 因(CX)=(AX),故(CX)=2400H,ZF=1
如果指令执行前(AX)=2500H,(CX)=2300H,(DX)=2400H
则指令执行后因(CX)!=(AX),故(AX)=2300H,ZF=0
这是书上的例题
我不明白的是CMPXCHG指令不是比较交换吗?怎么还要考虑AX呢?我刚开始自己做得时候以为两者执行后的结果是一样的呢!可是结果却收到AX的限制!不知为何!还有就是标志位ZF不是零标志位吗?运算结果为0时ZF位置为1否则为0那为什么这题中一个为1一个为零呢??本人刚学汇编不到两星期!感觉还是没入门请教各位前辈帮忙解惑!谢谢