最近在学习leal的时候遇到了一点非常迷惑的地方,就是leal是用来取有效地址的,但是为什么它也可以实现赋值呢?偶然发现一个博客讲的不错,遂自己记录一下

一个这样的例子

leal 7(%edx,%edx,4),%edx

如果寄存器edx里面存的值为x,我们知道这句结束之后edx里面的值会被置为5x+7,但是看起来为什么是值而不是地址呢?

实际上这之中发生了这样的步骤:

  1. 首先,edx寄存器里面的值为x

  2. 显然,这是一种基址比例变址的寻址方式,%edx+%edx*4+7,目标内存地址为5x+7

3.那么,我们假设地址为5x+7对应的值为y,由于leal取的是有效地址,所以对于值y来说,它的地址就是5x+7,故leal取5x+7

4.5x+7被赋给寄存器edx

参考来源:

https://www.jianshu.com/p/29ce0edcd975

最新文章

  1. zookeeper原理解析-数据存储
  2. Synchronized和Static Synchronized区别
  3. spring boot分布式技术,spring cloud,负载均衡,配置管理器
  4. 驱动开发学习笔记. 0.01 配置arm-linux-gcc 交叉编译器
  5. 免费电子书:微软Azure基础之Azure Automation
  6. pyCharm使用
  7. Eclipse JavaEE设置内置浏览器和外部浏览器
  8. jQuery Mobile里xxx怎么用呀?(集成篇)
  9. Oracle中NULL值与索引
  10. iOS多线程编程之GCD的使用
  11. 解读sample3
  12. CppCon - Modern Template Metaprogramming 杂记
  13. 【Nginx笔记】nginx配置文件具体解释
  14. python绝技 — 用Scapy测试无线网卡的嗅探功能
  15. border表格有的自动换行,有的不能自动换行!
  16. NYOJ201作业题
  17. dhtmlx Gantt知识点1
  18. Qt5.12.2开发Android环境搭建
  19. 干货 | 10分钟玩转PWA
  20. mysql数据库指定ip远程访问 指定用户 指定数据库

热门文章

  1. Unity 让物体朝摄像机观察方向移动,已摇杆方向转向
  2. HashMap 和 Hashtable 的 6 个区别,一般人不知道最后一条
  3. sql语句中select……as的用法
  4. debugging kubernetes (Delve and Goland)
  5. WebStorm过期解决方法
  6. django2.0.6 连接使用redis集群
  7. iOS进阶之如何进行 HTTP Mock(转载)
  8. Flutter 输入控件TextField设置内容并保持光标(cursor)在末尾
  9. MySQL主从复制虽好,能完美解决数据库单点问题吗?
  10. redis集群部署+节点端口修改+数据恢复