<span>CMPXCHG指令</span>

一、CMPXCHG汇编指令详解。

这条指令将al\ax\eax\rax中的值与首操作数比较:

1.如果相等,第2操作数的直装载到首操作数,zf置1。(相当于相减为0,所以0标志位置位)

2.如果不等, 首操作数的值装载到al\ax\eax\rax,并将zf清0

二、举例说明。

例如:

CMPXCHG CX,DX 首操作数: CX 第2操作数:DX 

(1) 如果指令执行前:

(AX) = 2300H (CX) = 2300H (DX) = 2400H 

则指令执行后, 因(CX)= (AX), 故
第2操作数(DX)直装载到首操作数(CX),ZF置1。
(CX)=2400H,ZF=1

(2) 如果指令执行前:

(AX) = 2500H (CX) = 2300H (DX) = 2400H 

则指令执行后因首操作数(CX)不等于(AX), 即(CX)!=(AX) 。
寄存器( al\ax\eax\rax )中的值与首操作数(CX)不等, 那么首操作数的值 (CX)直接装载到al\ax\eax\rax中,即(AX)= (CX 的值2300H),并将zf清0。

最终得到:

(AX)=2300H,ZF=0

CMPXCHG隐含使用EAX寄存器。象这种隐含使用其他寄存器的指令还有不少。对于哪种操作影响标志位也需要慢慢熟悉。

全部评论

相关推荐

暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务