XOR指令对两个操作数执行按位的逻辑异或运算:即相“异或”的两位不相同时,结果就是1;否则,“异或”的结果为0。XOR指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。XOR可用于求反某些位,而不影响其他位。要求求反的位同“1”异或,维持不变的位同“0”异或。XOR指令经常给寄存器清0,同时使CF也清0。
OR指令对两个操作数执行按位的逻辑或运算:即只要相“或”的两位有一位是1,结果就是1;否则,“或”的结果为0。OR指令可用于置位某些位,而不影响其他位。这时只需将要置1的位同“1”或,维持不变的位同“0”或即可。OR指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。
AND指令对两个操作数执行按位的逻辑与运算:即只有相“与”的两位都是1,结果才是1;否则,“与”的结果为0。AND指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。AND指令可用于复位某些位,但不影响其他位。这时只需将要置0的位同“0”与,而维持不变的位同“1”与就可以了。
NOT指令对操作数按位取反:即原来为0的位变成1,原来为1的位变成0。注意,NOT 指令不影响标志位。
TEST指令对两个操作数执行按位的逻辑与运算,但结果不回到目的操作数。TEST指令执行的操作与AND指令相同,但不保存执行结果,只根据结果来设置状态标志。TEST指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。TEST指令通常用于检测一些条件是否满足,但又不希望改变原操作数的情况。这条指令之后,一般都是条件转移指令,目的是利用测试条件转向不同的程序段。TEST指令用于测试某一(几)位是否(同时)为0或为1。