汇编 OR运算
知识点: OR运算
逻辑或
按位或 一、OR运算
12||1=1; 1||01=1;
0||0=0;
|| //逻辑或
| //按位或 int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k;
/*i=21;
j=65;*/
i=0x33; //0110011
j=0x66; //1100110
//1110111
//i|j=0x77;
k=i||j;//逻辑或0,1
__asm mov eax,eax k=i|j; //按位或
//00401006 |. C745 FC 33000>MOV DWORD PTR SS:[EBP-4],33 ; i=0x15=0010101
//0040100D |. C745 F4 66000>MOV DWORD PTR SS:[EBP-C],66 ; j=0x41=1000001
//00401014 |. 837D FC 00 CMP DWORD PTR SS:[EBP-4],0 ; i Or j=1010101
//00401018 |. 75 0F JNZ SHORT asm_OR.00401029
//0040101A |. 837D F4 00 CMP DWORD PTR SS:[EBP-C],0
//0040101E |. 75 09 JNZ SHORT asm_OR.00401029
//00401020 |. C745 F0 00000>MOV DWORD PTR SS:[EBP-10],0 ; t=0;
//00401027 |. EB 07 JMP SHORT asm_OR.00401030
//00401029 |> C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1 ; t=1;
//00401030 |> 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
//00401033 |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX ; k=t=i||j;
//00401036 |. 8BC0 MOV EAX,EAX ; __asm mov eax,eax
//00401038 |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
//0040103B |. 0B4D F4 OR ECX,DWORD PTR SS:[EBP-C] ; ecx=i OR j
//0040103E |. 894D F8 MOV DWORD PTR SS:[EBP-8],ECX ; k=ecx return 0;
}
汇编 OR运算的更多相关文章
- 汇编 XOR运算
XOR运算 按位异或^ 一.按位异或^ 运算符^ 1^1=0;0^0=0; //相同则为0 0^1=1;1^0=1; //不相同为1 1101^0110=1011; // asm_XOR.c ...
- 汇编 AND 运算
AND运算 逻辑与&& 按位与& 一.AND运算 1&&12=1; 12&&0=0; 0&&1=0; 0040100 ...
- 汇编:实现C语言的 ||与&&运算
;C程序转汇编(或运算链接) DATAS SEGMENT a Dw b dw cc dw d dw m dw n dw string db dup(?) DATAS ends CODES SEGMEN ...
- ARM汇编
ARM汇编 ISA ISA即指指令集架构(Instruction Set Architecture)是与程序设计有关的计算机架构的一部分,包括本地数据类型.指令.寄存器.地址模式.内存架构.中断和意外 ...
- 网络误区:不用中间变量交换2个变量的value,最高效的是异或运算.
本文记录了不使用中间变量交换2个变量的value,很多的网络留言说是直接异或运算就可以了,而且效率很高,是真的吗? 这里简单的说一下我的环境:Win7 32位,Qt creator 5.4.1 编译器 ...
- Linux内核--C语言中内嵌汇编 asm __volatile__
在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可 ...
- ASM:《X86汇编语言-从实模式到保护模式》5-7章:汇编基础
第5-7章感觉是这一本书中比较奇怪的章节,可能是作者考虑到读者人群水平的差异,故意由浅入深地讲如何在屏幕上显示字符和使用mov,jmp指令等等,但是这样讲的东西有点重复,而且看了第六,第七章以后,感觉 ...
- 学习linux内核时常碰到的汇编指令(2)
转载:http://blog.sina.com.cn/s/blog_4be6adec01007xvh.html JNGE∶指令助记符——(有符号数比较)不大于且不等于转移(等价于JL).当SF和OF异 ...
- 学习linux内核时常碰到的汇编指令(1)
转载:http://blog.sina.com.cn/s/blog_4be6adec01007xvg.html 80X86 汇编指令符号大全 +.-.*./∶算术运算符. &∶宏处理操作符. ...
随机推荐
- pytest+allure+jenkins +python2.7
pip install lxml==3.8.0 pip install pytest-allure-adaptor
- Java中的StringTokenizer类的使用方法
StringTokenizer是字符串分隔解析类型,属于:java.util包. 1.StringTokenizer的构造函数 StringTokenizer(String str):构造一个用来解析 ...
- datetime24小时格式和12小时格式
12:DateTime.Now.ToString("hh:mm:ss") 24:DateTime.Now.ToString("HH:mm:ss")
- SQL语句结合上下文查询(in查询)
在多个表联合查询时,使用linq语句查询就显得不那么方便了,执行效率也不高, SQL语句查询的优势就显现出来了. using (var context = new YZS_TRAEntities()) ...
- jboss eap6.1(4)(部署应用)
1.添加应用war包 手动部署,添加war包到standalone\deployments下,手工创建一个文件,如war包名称是a.war,创建一个a.war.deployed文件,内容随意. 2. ...
- 总结Linux 下Redis 操作常用命令(转)
Redis的配置 Linux下安装 ]# wget http://download.redis.io/releases/redis-2.8.17.tar.gz ]# tar xzf redis-2.8 ...
- Oracle 单实例 Relink Binary Options 说明
一.引入问题 帮朋友在CentOS上安装一个10g的Oracle,结果朋友的CentOS版本是6.2的版本,最新的一个版本,不过Linux上基本都差不多,所以按照以前的步骤,迅速的操作起来,结果遇到N ...
- Android 增加JNI
Android:JNI 与 NDK到底是什么?(含实例教学) 前言 在android开发中,使用NDK开发的需求正逐渐增大: 很多人搞不懂JNI与NDK到底是怎么回事? 今天我们先介绍JNI与NDK之 ...
- leetcode 2. Add Two Numbers [java]
注意点: 最后的进位 (l1 == null || l1.next == null) break; public ListNode addTwoNumbers(ListNode l1, ListNod ...
- Netty入门(一)环境搭建及使用
一.项目创建 在 Eclipse 中右键,新建->项目->Maven->Maven Project->下一步->选择 quickstart 下一步->设置如图(参数 ...