与运算 and
逻辑与运算指令AND
格式:AND OPRD1,OPRD2
功能:对两个操作数实现按位逻辑与运算,结果送至目的操作数,本指令可以进行字节或字的‘与
运算,
本指令影响标志位PF,SF,ZF,使CF=0,OF=0.例如,在同一个通用寄存器自身相与时,操作数虽不变,但使CF置零,本指令主要用于修改操作数或置某些位为0.
两个数二进制按位进行对比,两个数该位都是1结果就是1,否则就是0
C语言: &
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13#include<stdio.h> main(){ int a; _asm{ mov eax,5 mov ebx,6 and eax,ebx mov a,eax }; printf("%dn",a); //结果为4 }
或运算 or
逻辑或指令OR
格式:OR OPRD1,OPRD2
功能:or指令完成对两个操作数的按位‘或’运算,结果送至目的操作数中,本指令可以进行字节或字的‘或’运算。
或:两个数二进制按位进行对比,两个数该位其中有一个或两个为1结果就为1,全部为零结果就为0.
C语言: |
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13#include<stdio.h> main(){ int a; _asm{ mov eax,5 mov ebx,6 or eax,ebx mov a,eax }; printf("%dn",a); //结果为7 }
异或运算 xor
逻辑异或运算指令XOR
格式:XOR OPRD1,OPRD2
功能:实现两个操作数按位异或运算,结果送至目的操作数
异或运算:两个数二进制按位进行对比,两个数该位相同就为0,不同就为1.
C语言:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13#include<stdio.h> main(){ int a; _asm{ mov eax,5 mov ebx,6 xor eax,ebx mov a,eax }; printf("%dn",a); //结果为3 }
非运算 not
逻辑运算符:NOT
格式:NOT exp
功能:按位求反
非运算:两个数二进制按位进行对比,按位取反,!1=0,!0=1;
C语言: !
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14#include<stdio.h> main(){ int a; _asm{ mov eax,5 mov ebx,6 not eax // 对eax取反 ,对ebx取反输出结果为-7 mov a,eax }; printf("%dn",a); //结果为-6 }
最后
以上就是甜美裙子最近收集整理的关于汇编语言的逻辑运算---与或非 异或的全部内容,更多相关汇编语言的逻辑运算---与或非内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复