汇编 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 汇编指令符号大全 +.-.*./∶算术运算符. &∶宏处理操作符. ...
随机推荐
- Android--监听View的两个指头是放大和缩小
private double nLenStart = 0;//监听 WebView所用手势 @Override public boolean onTouch(View v, MotionEvent e ...
- Double Array Trie 的Python实现
不多介绍,可自行Google,或者其它关键词: "datrie" 放代码链接: double_array_trie.py 因为也是一段学习代码,参考的文章都记在里面了,主要参考gi ...
- SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
我们在写Sql语句的时候没经常会遇到将查询结果行转列,列转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法.但是这样做实现起来非常复杂,而在SqlSe ...
- 使用动态SQL创建数据库
/*其实我也搞不懂为什么要用SQL来创建,明明SQL Server有图形化创建数据库多省事啊!*/USE master; DECLARE @sqlstr nvarchar(max)/*定义一个变量* ...
- CameraAPI中的 自定义照相功能
前几天的项目需要使用CameraAPI自己定义照相机,之前用过的二维码也要自己写底层代码,于是总结一下使用CameraAPI的几点事项.现在由于JDK7.0及其以上版本的官方文档已经不再推荐使用cam ...
- Docker容器学习与分享04
Docker容器的基本操作(2) 基于docker分享03的centos容器,接着学习docker容器的基本操作. docker分享03中创建了一个centos镜像,如果想要查看容器的具体信息就要使用 ...
- 团队作业6--展示博客(Alpha版本)
一.团队展示: 1.队名:软件1412--博客管理系统 2.队员学号(标记组长) 曾海明(组长):201421122036 周雅静(组员):201421122003 王珏(组员):2014211 ...
- Vmware Vcenter6.5 全新安装及群集配置介绍
转 Vmware Vcenter6.5 全新安装及群集配置介绍 2016年12月31日 14:27:12 ccitzy01 阅读数:97772 标签: vmware [摘要] VMwarevCen ...
- 5.Dubbo2.5.3泛化引用和泛化实现
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.泛化引用 泛接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值中的所有POJO均用Ma ...
- python第二十九课——文件读写(readline()和readlines()的使用)
演示readline()和readlines()的使用: #1.打开文件 f3=open(r'a.txt','r',encoding='gbk') #2.读取数据 content3=f3.readli ...