我觉得知道指令的本质就行了,至于具体的应用可以随机而定,死记这些等价指令没有什么用处。当然有几个常用的也不错,但过分的追求它就有些偏颇了。
XOR指令对两个操作数执行按位的逻辑异或运算:即相“异或”的两位不相同时,结果就是1;否则,“异或”的结果为0。XOR指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。
例2.30a:逻辑异或运算
mov al,45h
xor al,31h ;al=74h,CF=OF=0、SF=0、ZF=0、PF=1
XOR可用于求反某些位,而不影响其他位。要求求反的位同“1”异或,维持不变的位同“0”异或。
例2.30b:将BL中D0和D3求反,其余位不变
xor bl,00001001b
XOR指令经常给寄存器清0,同时使CF也清0;例如:
xor ax,ax ;ax=0,CF=OF=0、SF=0、ZF=1、PF=1 |