多数情况下,64位模式中的64位指令与32位模式中的操作数是一样的,比如源操作数是16/8位常数,而目标操作数是64位的内存操作数或者64位的寄存器,那么目标操作数中的所有位都会受到影响。

.data;在这里声明变量val qword 0ffffffffffffffffh;.code ;这里写自己的代码mov rax,val;          RAX=FFFFFFFFFFFFFFFFand rax,80h;          RAX=0000000000000080mov rax,val;          RAX=FFFFFFFFFFFFFFFFand rax,8080h;        RAX=0000000000008080  mov rax,val;          RAX=FFFFFFFFFFFFFFFFand rax,808080h;      RAX=0000000000808080

源操作数不能为16/8位内存操作数或者寄存器,因为操作数大小不匹配。

如果源操作数是32位的常数,而目标操作数是64位的内存操作数或者64位的寄存器,那么目标操作数只有低32位会受到影响,高32位不变。

mov rax,val          RAX=FFFFFFFFFFFFFFFF
and rax,80808080h    RAX=FFFFFFFF80808080

总而言之,32位操作数是一个特殊情况,需要与其它大小的操作数分开考虑。

64位汇编中的布尔指令相关推荐

  1. 第41部分-Linux x86 64位汇编MMX使用

    第41部分-Linux x86 64位汇编MMX使用 使用MMX架构需要一下步骤 从整数值创建打包整数值 把打包整数值加载到MMX寄存器中 对打包整数值执行MMX数学操作. 从MMX寄存器获得结果放到 ...

  2. visual studio 64位汇编 listing列表文件

    编写64位汇编与32位汇编步骤一样,但要增加一步 右键项目找到属性弹出窗口,如下图所示 在visual studio中生成列表文件 右键项目找到属性弹出窗口,如下图所示

  3. 64位汇编之linux系统调用

    linux系统中64位汇编和32位汇编的系统调用主要有以下不同: (1)系统调用号不同.比如x86中sys_write是4,sys_exit是1:而x86_64中sys_write是1, sys_ex ...

  4. 第19部分- Linux x86 64位汇编GDB单步调试

    第19部分- Linux x86 64位汇编GDB单步调试 本篇我们使用gdb来调试上篇中的汇编代码. gdb调试 使用gdb进行调试. #gdb ./addsum_arg 设置参数: (gdb) s ...

  5. 研究16位汇编NEG求补指令

    转自: http://bbs.pediy.com/showthread.php?t=81209 [文章标题]: 研究16位汇编NEG求补指令  [文章作者]:  hzmslx 我是个菜鸟··学16位汇 ...

  6. 第77部分- Linux x86 64位汇编 优化编译器代码

    第77部分- Linux x86 64位汇编 优化编译器代码-O1/-O2/-O3 仅仅使用汇编语言代码替换C或者C++不会必然使得程序执行的更好,因为编译器已经把所有高级语言代码都转化成了汇编语言. ...

  7. 为什么在64位系统中指针的大小是8,而32位系统中却是4?

    为什么在64位系统中指针的大小是8,而32位的却是4? 64位系统,这个位数指的是CPU 里面的通用寄存器的数据宽度为64位,也就是说一个地址占二进制位数是64,所以: sizeof(double * ...

  8. 64位win7中使用vs2013为python3.4安装pycrypto-2.6.1插件报Unable to find vcvarsall.bat异常解决方式...

    问题描写叙述: 64位win7中使用vs2013为python3.4.2安装pycrypto-2.6.1插件报Unable to find vcvarsall.bat. 问题分析: 1.源代码分析,查 ...

  9. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功

    (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 Visual Studio 2015下载地址:https://msdn.itellyo ...

最新文章

  1. 拒绝+启示+TED+被拒的100天+What I learned from 100 days of rejection
  2. python 内建比较函数详解
  3. webrtc agc matlab,c++ WebRTC AGC(自动增益控制)
  4. CPU,内核,寄存器,缓存,RAM,ROM的知识
  5. java servlet spring_spring与tomcat 对应关系,servlet各版本写法
  6. 【英语学习】【WOTD】adjudicate 释义/词源/示例
  7. 【珍藏】2020年AI、CV、NLP顶会最全时间表!
  8. brave mysql_MYSQL常用命令
  9. Python编码格式导致的csv读取错误
  10. [Reinforcement Learning] Model-Free Prediction
  11. string数组转换成int数组,数组转字符串,字符串转list,list集合转字符串,删除数组中为空的元素,list转数组 数组转list
  12. 声音均衡器怎么调好听_调音师必备:如何调出最佳人声?
  13. 各个浏览器url带参限制
  14. js实现word生成书签_javascript下用ActiveXObject控件替换word书签,将内容导
  15. 笔记本插拔电源屏闪问题
  16. 塑料壳上下扣合的卡扣设计_卡扣结构设计常识,结构设计中扣合量如何留
  17. LNMP论坛搭建,图案步骤,简单清晰明瞭
  18. pythonxpath判断元素是否存在_Python Lxml(objectify):检查标签是否存在
  19. 第六篇 | C语言中将键盘输入的两个整数进行交换
  20. 中关村互联网教育创新中心:这里是互联网教育的主场

热门文章

  1. html css网页布局实例简单,Div+CSS网页布局项目实战一(含设计图、HTML和CSS源文件)...
  2. 轻松使用终端开启macOS系统的隐藏功能,小白都能看得懂
  3. adb shell命令_[Android]adb的使用
  4. 模板应用到多个主机 zabbix_Zabbix监控TCP连接数
  5. NOI数据结构:后缀数组
  6. 1.13编程基础之综合应用_30_1的个数
  7. 1.5编程基础之循环控制 38 计算多项式的导函数
  8. RTX5 | 线程标志组02 - 获取线程标志与清除线程标志
  9. 【ES11(2020)】全局属性 globalThis
  10. 苹果ios浏览器里面数字被当做电话号码