汇编逻辑运算指令
逻辑运算指令是另一组重要的指令,它包括:逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)和异或指令(XOR),逻辑运算指令也是经常使用的指令。
1、逻辑与操作指令AND(Logical AND Instruction)
指令的格式:ANDReg/Mem, Reg/Mem/Imm
受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑“与操作”,操作结果存入目标操作数中。
例5.6已知(BH)=67H,要求把其的第0、1和5位置为0。
解:可以构造一个立即数,其第0、1和5位的值为0,其它位的值为1,该立即数即为:0DCH或11011100B,然后用指令\"AND BH, 0DCH\"来实现此功能。
2、逻辑或操作指令OR(Logical OR Instruction)
指令的格式:ORReg/Mem, Reg/Mem/Imm
受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑\"或操作\",操作结果存入目标操作数中。
例5.7已知(BL)=46H,要求把其的第1、3、4和6位置为1。
解:构造一个立即数,使其第1、3、4和6位的值为1,其它位的值为0,该立即数即为:5AH或01011010B,然后用指令\"OR BL, 5AH\"来实现此功能。
3、逻辑非操作指令NOT(Logical NOT Instruction)
指令的格式:NOTReg/Mem
其功能是把操作数中的每位变反,即:1←0,0←1。指令的执行不影响任何标志位。
例5.8已知(AL)=46H,执行指令“NOTAL”后,AL的值是什么?
解:执行该指令后,(AL)=0B9H。
4、逻辑异或操作指令XOR(Exclusive OR Instruction)
指令的格式:XORReg/Mem, Reg/Mem/Imm
受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑\"异或操作\",操作结果存入目标操作数中。
例5.9已知(AH)=46H,要求把其的第0、2、5和7位的二进制值变反。
解:构造一个立即数,使其第0、2、5和7位的值为1,其它位的值为0,该立即数即为:0A5H或10100101B,然后再用指令\"XOR AH, 0A5H\"来实现此功能。
=============================================
这么大段内容也不好记住,我还是总结个小口诀吧,大家看觉得行么?
置零就用与,写零就得零;
置一就用或,写一就得一;
要想位取反,就得用异或;
见一就取反,见零不改变。
大家有更精炼的么?共享出来大家一起学习哈!