经典汇编语言教程:5.2.4 逻辑运算指令

5.2.4 逻辑运算指令

逻辑运算指令是另一组重要的指令,它包括:逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)和异或指令(XOR),逻辑运算指令也是经常使用的指令。

1、逻辑与操作指令AND(LogicalAND Instruction)

指令的格式:AND Reg/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,然后用指令"ANDBH, 0DCH"来实现此功能。

其计算过程如右图所示。

2、逻辑或操作指令OR(LogicalOR Instruction)

指令的格式:OR Reg/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,然后用指令"ORBL, 5AH"来实现此功能。

其计算过程如右图所示。

3、逻辑非操作指令NOT(LogicalNOT Instruction)

指令的格式:NOT Reg/Mem
其功能是把操作数中的每位变反,即:1←0,0←1。指令的执行不影响任何标志位。

例5.8 已知(AL)=46H,执行指令“NOT AL”后,AL的值是什么?

解:执行该指令后,(AL)=0B9H。其计算过程如下所示。

4、逻辑异或操作指令XOR(ExclusiveOR Instruction)

指令的格式:XOR Reg/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"来实现此功能。

其计算过程如右图所示。

5、逻辑操作指令的小结

下面是学习和掌握逻辑类指令的控件,可模拟执行ANDORNOTXOR等指令。

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号