1、Test
功能: 执行BIT与BIT之间的逻辑运算
Test对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器,结果本身不会保存。
TEST EAX,EBX 与 AND EAX,EBX 命令有相同效果
不同的是:前者会根据运算结果修改ZF标志寄存器,后者会把结果送回EAX
若果结果为0,ZF=1,�否则ZF=0
语法: TEST r/m,r/m/data
影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0)
Test的一个非常普遍的用法是用来测试一方寄存器是否为空。
2、cmp
cmp指令则是做减法(sub)运算
对照普通的减法指令 SUB AX, BX,它们的区别就在于:
SUB指令执行过以后,原来AX中的被减数丢了,被换成了减法的结果。
CMP指令执行过以后,被减数、减数都保持原样不变。
网友评论