CMP
作者:Vesper Vei
1 分钟阅读
目录
CMP(cmp)
基本作用
CMP 用于比较两个操作数的大小,但不会存储结果,而是仅根据比较结果更新 EFLAGS。
其核心行为等价于执行一次虚拟的减法:op1 - op2。
指令执行过程
执行时进行以下动作:
-
计算
op1 - op2(结果不写回) -
根据结果更新标志位:ZF、SF、OF、CF、PF
指令格式
cmp r/m32, r32 cmp r/m64, r64 cmp r/m32, imm32 cmp r/m64, imm32
行为特性
-
不修改两个操作数
-
仅更新 EFLAGS
-
常与条件跳转(je/jne/jg/jl 等)同时使用
-
关键标志:
-
ZF = 1 → 两者相等
-
SF/OF/CF 用于判断大小、正负、溢出情况
-
常见用途
-
条件判断
-
循环终止判定
-
分支逻辑控制
-
逆向分析中用于推断变量关系
-
PWN 中用于判断函数逻辑的关键分支点