开发者社区> xland> 正文

汇编语言基础教程-寻址方式

简介: 1立即寻址 在指令中使用的操作数为常数 如: mov eax,190;与mov eax,00BEH相同,低字节在前s mov eax,0FFFFFFFFH;与 mov eax,-1相同 eax可以存放一个双字   2寄存器寻址 操作数已经在CPU的寄存器中 如: mov EAX,...
+关注继续查看

1立即寻址

在指令中使用的操作数为常数

如:

mov eax,190;与mov eax,00BEH相同,低字节在前s

mov eax,0FFFFFFFFH;与 mov eax,-1相同

eax可以存放一个双字

 

2寄存器寻址

操作数已经在CPU的寄存器中

如:

mov EAX,EBX

 

3直接寻址

操作数为一个已经定义好的变量

如:

mov eax,dvar;dvar为一个双字变量

mov dvar,eax

在翻译成及其指令后,以上指令就变成了类似以下形式

mov eax,[00404011];地址外面加一个方括号,表示取这个地址的内容

 

4寄存器间接寻址

操作数的地址放在寄存器中

如:

mov ESI,00404011H

mov EAX,[ESI]

32位CPU中EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP能用作间接寻址

 

5寄存器相对寻址

如:

mov ESI,00404011H

mov EAX,[ESI+4]

 

6基址变址寻址

如:

mov ESI,00404011H

mov EBX,4

mov EAX,[ESI+EBX]

 

7基址变址相对寻址

如:

mov ESI,00404011H

mov EBX,4

mov EAX,[ESI+EBX+4]

 

8基址变址比例相对寻址

如:

mov ESI,00404011H

mov EBX,4

mov EAX,[ESI+EBX*2+4]

 

9*段超越

内存操作数的地址由两个部分指定:段和有效地址。

寻址方式中确定操作数的有效地址后,还要依靠段寄存器一起来确定操作数的内存地址

默认情况下内存操作指令在DS段中

如果使用了ESP和EBP来寻址,那么使用的是SS段寄存器

如:

mov eax,[ebp+8];内存操作数在SS段中

使用段超越前缀可以改变寻址方式中默认使用的段寄存器

如:

mov eax,cs:[ESP-4]

windows 32编程环境下CS,DS,ES,SS在内存中指向同一个段,其大小为4G

所以一般用不到段超越的操作

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
推荐一款简单易用线上引流测试工具:GoReplay
推荐一款简单易用线上引流测试工具:GoReplay
7 0
性能专题:一文搞懂性能测试常见指标
性能专题:一文搞懂性能测试常见指标
8 0
性能专题:Locust工具实战之“蝗虫”降世
性能专题:Locust工具实战之“蝗虫”降世
8 0
研发实用工具,推荐一款代码统计神器GitStats
研发实用工具,推荐一款代码统计神器GitStats
4 0
阿里云Esc初体验
Esc是阿里云的云服务器Elastic Compute Service的简称。
13 0
实体识别(2) -命名实体识别实践CRF
完整代码 https://www.heywhale.com/home/competition/6216f74572960d0017d5e691/content/
6 0
windows几款靠谱无广告效率利器-第一篇
windows几款靠谱无广告效率利器-第一篇
6 0
【数据结构课设】家谱管理系统(内附源码)
家谱管理系统是数据结构课程的一个经典的课程设计,也算是一个比较庞大的程序了吧,写出来还是蛮不容易的!分享出来希望能对大家有帮助!
8 0
阿里云镜像站下载gimp镜像
阿里云镜像站下载gimp镜像
10 0
+关注
xland
上市公司研发部门经理 管理着40个人以上的技术团队; 服务过诸多大型客户; 为很多知名开源项目提交过代码; 开发过几十万用户的APP; 技能:C++/.NET/JS/架构
329
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载