博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux汇编教程04:寻址方式
阅读量:5260 次
发布时间:2019-06-14

本文共 689 字,大约阅读时间需要 2 分钟。

这一节,我们主要来讨论寻址方式,这一点十分重要。

我们上一节有稍微提了一下,引用的通用格式:
地址或偏移(%基址寄存器, %索引寄存器, 比例因子 )
结果地址 = 地址或偏移 + %基址寄存器 + 比例因子 + %索引寄存器
地址或偏移和比例因子必须是常数,剩下的那两个必须是寄存器,在缺省的情况下,都用0来代替。

立即寻址方式

直接将值加载到目地位置中

movl $221, %eax

  • 1

直接寻址方式

通过使用地址或偏移来实现

movl ADDRESS, %eax

  • 1

索引寻址方式

通过地址或偏移以及%索引寄存器部分实现。你可以将任何通用寄存器用作索引寄存器。

movl data_items( , %ebx, 4 ), %eax

  • 1

间接寻址方式

以寄存器中的值作为地址,获得这个地址里的值。

movl (%eax), %ebx

  • 1

方式

和间接寻址类似,但多了一个常量和寄存器中的地址相加,

movl 4(%eax), %ebx

  • 1

寄存器寻址方式

就是数据的移入移出

这些方式大家要理解他们的特点,了解原理,到时候讲到堆栈之类的方便多了。

补充:

我们之前有讲过,32位寄存器都以e开头开头,%eax是我们的扩展寄存器,这种命名实现对以前的兼容, 以前使用%ax的16位寄存器,当然32位寄存器也可以使用%ax,%ax是%eax最低有效字(数值的后半部分), 同理%ax还可以封出一字节的%ah和%al。%ah是%ax中最高有效半字,%al是最低有效半字

转载于:https://www.cnblogs.com/guochaoxxl/p/10468715.html

你可能感兴趣的文章
浅谈自定义UITextField的方法
查看>>
《基于B/S中小型超市进销存管理系统的研究与设计》论文笔记(十六)
查看>>
[Web安全] XXE漏洞攻防学习(中)
查看>>
Web前端Talk--好文章分享
查看>>
Web测试详细点
查看>>
Nginx服务器 配置 https
查看>>
ECharts学习总结(三)-----基本概念分析
查看>>
使用java代码配置 Spring Boot 中的 Spring Security 和 Rember me, Cookie记住密码
查看>>
同步容器和并发容器
查看>>
hdu 5093 Battle ships 二分图匹配
查看>>
You are what you write——沈向洋
查看>>
Google 多源码管理工具 gclient
查看>>
Python Day72 对django的基础复习
查看>>
类的继承 设计模式
查看>>
Delphi匿名方法(一):初识
查看>>
工作流系统概述
查看>>
swift学习笔记4——扩展、协议
查看>>
Android NDK(C++) 双进程守护
查看>>
提高速度 history 的利用
查看>>
●POJ 1509 Glass Beads
查看>>