我是靠谱客的博主 甜美裙子,这篇文章主要介绍汇编语言的逻辑运算---与或非 异或,现在分享给大家,希望可以做个参考。

与运算 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 }

最后

以上就是甜美裙子最近收集整理的关于汇编语言的逻辑运算---与或非 异或的全部内容,更多相关汇编语言的逻辑运算---与或非内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(100)

评论列表共有 0 条评论

立即
投稿
返回
顶部