汇编语言的逻辑运算---与或非 异或

与运算 and

逻辑与运算指令AND
格式:AND OPRD1,OPRD2
功能:对两个操作数实现按位逻辑与运算,结果送至目的操作数,本指令可以进行字节或字的‘与
运算,
本指令影响标志位PF,SF,ZF,使CF=0,OF=0.例如,在同一个通用寄存器自身相与时,操作数虽不变,但使CF置零,本指令主要用于修改操作数或置某些位为0.
两个数二进制按位进行对比,两个数该位都是1结果就是1,否则就是0
C语言: &

#include<stdio.h>
main(){
 int a;
	_asm{
	     mov eax,5
		 mov ebx,6
		 and eax,ebx
		 mov a,eax
	};
    printf("%d\n",a);   //结果为4
}

或运算 or

逻辑或指令OR
格式:OR OPRD1,OPRD2
功能:or指令完成对两个操作数的按位‘或’运算,结果送至目的操作数中,本指令可以进行字节或字的‘或’运算。
或:两个数二进制按位进行对比,两个数该位其中有一个或两个为1结果就为1,全部为零结果就为0.
C语言: |

#include<stdio.h>
main(){
 int a;
	_asm{
	     mov eax,5
		 mov ebx,6
		 or eax,ebx
		 mov a,eax
	};
    printf("%d\n",a);   //结果为7
}

异或运算 xor

逻辑异或运算指令XOR
格式:XOR OPRD1,OPRD2
功能:实现两个操作数按位异或运算,结果送至目的操作数
异或运算:两个数二进制按位进行对比,两个数该位相同就为0,不同就为1.
C语言:

#include<stdio.h>
main(){
 int a;
	_asm{
	     mov eax,5
		 mov ebx,6
		 xor eax,ebx
		 mov a,eax
	};
    printf("%d\n",a);  //结果为3
}

非运算 not

逻辑运算符:NOT
格式:NOT exp
功能:按位求反
非运算:两个数二进制按位进行对比,按位取反,!1=0,!0=1;
C语言: !

#include<stdio.h>
main(){
 int a;
	_asm{
	     mov eax,5
		 mov ebx,6
		 not eax        // 对eax取反 ,对ebx取反输出结果为-7
		 mov a,eax
	};
    printf("%d\n",a);  //结果为-6
}
  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值