或运算

逻辑或 ||

int i, j, k;
i = 0x15;
j = 0x41;
k = i || j;

反汇编代码如下:
MOV DWORD PTR SS:[EBP-4], 15
MOV DWORD PTR SS:[EBP-C], 41
CMP DWORD PTR SS:[EBP-4], 0
JNZ SHORT asm_OR.00401029
CMP DWORD PTR SS:[EBP-C], 0
JNZ SHORT asm_OR.00401029
MOV DWORD PTR SS:[EBP-10], 0
JMP SHORT asm_OR.00401030
MOV DWORD PTR SS:[EBP-10], 1         //这条指令的地址是 00401029
MOV EAX, DWORD PTR SS:[EBP-10]    //这条指令的地址是 00401030
MOV DWORD PTR SS:[EBP-8], EAX

_______________________________________________
位或 |

int i, j, k;
i = 0x15;
j = 0x41;
k = i | j;

反汇编代码如下:
MOV DWORD PTR SS:[EBP-4], 15
MOV DWORD PTR SS:[EBP-C], 41
MOV ECX, DWORD PTR SS:[EBP-4]
OR ECX, DWORD PTR SS:[EBP-C]           可见OR的两个操作数必须有一个是寄存器, 前后都可以.
MOV DWORD PTR SS:[EBP-8], ECX

时间: 2024-11-04 23:19:55

或运算的相关文章

菜鸟学python之对象类型及运算

Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型. 等号(=)用来给变量赋值. 1 变量赋值 1.1 单个变量赋值 >>> name="python" >>> print(name) python 1.2 多个变量赋值 >>> name=names="python&

位运算

位运算的实际应用场景 http://blog.csdn.net/zmazon/article/details/8262185

C的|、||、&、&&、异或、~、!运算

位运算     位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有:     &(按位与).|(按位或).^(按位异或).~ (按位取反). 其中,按位取反运算符是单目运算符,其余均为双目运算符.     位运算符的优先级从高到低,依次为~.&.^.|, 其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符.    (1)按位与运算符(&) 

JavaScript基础 整形与字符串进行加法运算

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

Python之路5-流程控制和三元运算

if语句 if ...:     pass elif ...:     pass else:     pass for循环 for i in range(10):     print(i) while循环 while True:     if ...:         pass     else:         break break.continue break,跳出整个循环 continue,跳出当次循环继续下次循环 三元运算 a=1 b=2 c=3 d = a if a > b else

python基础:python循环、三元运算、字典、文件操作

目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执行:if语句有三种格式,如下: 在多分支的if表达式中,即使多个条件同时为真,也只会执行一个,首先测试为真: 选择执行 单分支的if语句 if CONDITION: 条件为真分支 双分支的if语句 if CONDITION 条件为真分支 else 条件不满足时分支 多分支的if语句 if CONDI

Swift学习之位移枚举的按位或运算

在OC里面我们经常遇到一些枚举值可以多选的,需要用或运算来把这些枚举值链接起来,这样的我们称为位移枚举,但是在swift语言里面却不能这么做,下面来讲解一下如何在swift里面使用 OC的位移枚举的区分 //位移枚举typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutores

sass学习笔记(五):sass的运算

(一).加法 加法运算是 Sass 中运算中的一种,在变量或属性中都可以做加法运算.如: .box {   width: 20px + 8in; } 编译出来的 CSS: .box {   width: 788px; } 但对于携带不同类型的单位时,在 Sass 中计算会报错,如下例所示: .box {   width: 20px + 1em; } 编译的时候,编译器会报错:"Incompatible units: 'em' and 'px'." (二).减法 Sass 的减法运算和加

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

Java中的简单浮点数类型float和double不能够进行精确运算

在java中,简单的浮点类型float和double是不能够进行运算.我们先看下面的两个程序代码: 代码一: import java.util.Scanner; class Circle { double radius; static final double PI=3.14; public Circle(){this.radius=0;} public Circle(double r){this.radius=r;} public double getArea(){return PI*this