PTR运算符可以用来重写一个已经被声明过的操作数的大小类型。左右操作数容量必须一致,当不一致时需要用PTR运算符限定容量。

datamydouble dword 12345678h.codemov ax, mydouble ;这是不允许的,因为mydouble被声明为4字节元素,ax寄存器只能存放2个字节。属于左右操作数不一致的情况。mov ax, word ptr mydouble ;虽然mydouble是4字节元素,但word ptr表示从mydouble中只提取2个字节放入ax。ax=5678,因为是小端模式,mydouble的起始位置第一个字节是78,第二个字节是56。mov ax, word ptr mydouble+1 ;ax=3456mov ax, word ptr mydouble+2 ;ax=1234mov ax, word ptr mydouble+3 ;超出了mydouble数据的范围一个字节,ax的低位是12,高位未知。

PTR必须与一个标准汇编数据类型一起使用,包括:byte, sbyte, word, sword, dword, sdword, fword, qword, tbyte。

.data
mydouble word 1234h, 5678h.code
main PROCmov eax, 0mov eax, dword ptr mydouble  ;mydouble被定义为2字节元素,左右操作数必须同样大小的原则,用 dword ptr来提取4字节才能交给eax寄存器。invoke exitprocess, 0
main ENDP
END main

x86汇编_PTR运算符_笔记_9相关推荐

  1. x86汇编_CMP指令_笔记_28

    高级语言常用的比较语句: if A > B ... while X > 0 and X < 200 ... if check_for_error(N) = true x86汇编用cm ...

  2. x86汇编_短路求值-AND / OR运算符_笔记_39

    汇编语言很容易实现AND运算符的复合布尔表达式.考虑下面的伪代码,如果a1小于b1则不需要关心b1是否大于c1,这种思路就叫短路求值. if (a1 > b1) AND (b1 > c1) ...

  3. 【操作系统学习笔记(一)】对x86汇编知识做了粗略补充,以及尽力读懂代码片段

    学习参考:B站哈工大李治军老师的网课 前置知识:计组,和x86有亿点点区别的RISC-V指令集. 其他章节笔记: (一)操作系统的启动 (二)系统调用 (三)操作系统历史 (四)多进程管理图像 (五) ...

  4. 【Android 逆向】x86 汇编 ( 参考资料 | Intel 官方的文档 | x86 汇编中文文档 | 汇编指令查询器 )

    文章目录 一.x86 汇编参考文档 1.Intel 官方的文档 2.常用 x86 汇编文档 3.x86 汇编指令查询器 总结 一.x86 汇编参考文档 下面的所有资料 , 都可以在博客资源 https ...

  5. x86汇编知识以及应用详解

    基础知识: 指令规则:movl $0 %eax,把常数0加载到eax寄存中.这里的后缀字母l表示long:4字节,此外还有w表示word:2字节(为了服从传统而已,其实现代意义的word就是4字节了) ...

  6. 二进制分析实战:x86汇编快速入门

    因为汇编语言是二进制文件中机器指令的标准表示形式,许多二进制分析都基于反汇编,所以读者必须熟悉x86汇编语言的基础知识,才能从本书中获得最大收获.本附录将为你介绍汇编语言的基础知识. 本附录的目的不是 ...

  7. 寄存器理解 及 X86汇编入门

    本文整理自多材料源,感谢原址分享,请查看末尾Url I, 汇编语言分类: 汇编语言和CPU息息相关,但是不能把汇编语言完全等同于CPU的机器指令.不同架构的CPU指令并不相同,如x86,powerpc ...

  8. 在VS2015中编写x86汇编

     参考教程: 作者:上下求索 VS2015,C嵌套汇编 & C,汇编相互调用 http://ylqhust.github.io/blog/2016/04/17/vs-clanguage-asm ...

  9. 【Android 逆向】x86 汇编 ( align | db | dw | dd | nop | 伪指令 )

    文章目录 一.align 字节对齐指令 二.db / dw / dd 指令 三.nop 指令 总结 一.align 字节对齐指令 align 字节对齐 ; 默认情况下是 161616 字节对齐 ; 该 ...

最新文章

  1. springboot 多线程_SpringBoot异步调用@Async
  2. mysql docker 制作_docker 制作自己的mysql镜像
  3. 自律到极致-人生才精致「第5期」:领奖通知
  4. RabbitMQ Node.js 示例
  5. 【springboot中使用拦截器】
  6. java 调用软键盘_打开软键盘
  7. spring依赖注入_Spring源码阅读:Spring依赖注入容器
  8. (需求实战_终章_08)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试
  9. Bootstrap创建按钮工具栏
  10. Java贪吃蛇小游戏,我家小AD从小水蛇成长为水中巨蟒!
  11. 静态链表(简单介绍)
  12. 企业u盘系统服务器,服务器u盘装系统
  13. 2019-2020中国互联网趋势报告
  14. 声音侦测灵敏度、阈值、分贝的关系
  15. 树莓派3B+的基础配置
  16. iOS - 颜色选择器
  17. Android解析lrc里的歌词
  18. 朋友圈都在说的央行数字货币,究竟跟你有什么关系
  19. xSS-Reflected
  20. 北航博士生联培申请经验

热门文章

  1. 你知道吗?常用的数据挖掘分析工具Mahout和MLlib
  2. SCTF情报局|Syclover战队专访来喽!
  3. 【SAP-CO】成本中心会计之分配/分摊循环操作
  4. C语言实现复数的加减乘除
  5. Linux基础命令-date命令
  6. python声明变量教程_Python定义变量
  7. BeanCopier常用方法 - cglib.beans常用工具类
  8. C语言“递归法”输入一个非负整数,求出组成这个非负整数的数字之和
  9. PyCharm 关闭 Test 功能
  10. OFFICE1:EXCEL、WPS表格数据处理,三种多列合并为一列,用法和原理详解。