灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2378回复:0

汇编逻辑运算指令

楼主#
更多 发布于:2012-09-10 18:57

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

1、逻辑与操作指令AND(Logical AND 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,然后用指令"AND BH, 0DCH"来实现此功能。

其计算过程如右图所示。

2、逻辑或操作指令OR(Logical OR 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,然后用指令"OR BL, 5AH"来实现此功能。

其计算过程如右图所示。

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

指令的格式:NOT Reg/Mem

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

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

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

4、逻辑异或操作指令XOR(Exclusive OR 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、逻辑操作指令的小结

喜欢0 评分0
游客

返回顶部