汇编学习之《test, cmp 指令》
它和逻辑与(and)计算方式是一样,他们两个的区别,and 会改变对象的值,test指令不会改变,但是它会改变EFL标志寄存器的ZF零位标记的值。实际上是做的减法运算,与算数sub运算指令的区别是,cmp指令不改变作用对象的值,但还是会改变EFL标志寄存器的ZF标志位。其实:cmp eax,1 可以用来判断 eax 和 后面的数字是否相等,比如 ZF 位是1表示相等,否则不是。这里可以看到 eax 变成了0, EFL 标志寄存器的ZF零标志位被设置成了1(零 zf=1, 非零=0)可以看到eax的值变了。