第3章_1 80X86的寻址方式.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 80X86指令系统 主要内容: 指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理: 操作码的含义 指令对操作数的要求 指令执行的结果 3.1 概述 80X86指令系统: (1)指令向后兼容(x86系列) (2)应用广泛,资料易于寻找 指令按功能分为六大类 (1)数据传送类; (2)算术运算类; (3)逻辑运算和移位; (4)串操作; (5)控制转移类; (6)处理器控制。 3.1.1 指令的基本构成 汇编语言指令要解决的两个问题: 要指出进行什么操作—操作符; 要指出操作数和操作结果放在何处—寻址方式。 3.1.1 指令的基本构成 部分80X86常用指令 3.2 80X86的寻址方式 寻址方式——寻找操作数的方法 寻找操作数的地址(一般指源操作数) 寻找要执行的下一条指令的地址 归纳EA可有多种情况构成: 直接寻址 寄存器间接寻址 寄存器相对寻址 基址加变址寻址 相对的基址加变址寻址 比例变址寻址方式 基址比例变址寻址方式 相对基址比例变址寻址方式 数据操作数分类 1、立即数操作数 2、寄存器操作数 3、存储器操作数 4、I/O操作数 CS一般不用赋值。 对段寄存器ES 、DS 、SS进行赋值,不能将立即数直接送段寄存器,要将立即数送通用寄存器,再从通用寄存器送段寄存器。 寄存器长度应匹配 操作数在存储器中的寻址方式 通过不同的寻址方式求得操作数的地址-从而取得操作数。 80X86任何内存单元的地址由段基址和偏移地址组成 ??段基址由段寄存器提供 ??而偏移地址由以下四个基本部分组合而成。 –基址寄存器; –变址寄存器; –比例因子; –位移量; 它们的组合和计算方法为: 有效地址EA=基址+变址×比例因子+位移量 有效地址可有以下四种成分组成: (1)位移量: 是存放在指令中的一个8位、16位或32位的常数。 (2)基址:EA的一个基础量 基址寄存器:任何通用寄存器(包括32位) 常用基址寄存器:BX、BP、EBX、EBP (3)变址: 变址寄存器:除ESP外的通用寄存器 常用变址寄存器:SI DI ESI EDI (4)比例因子: 是386及后继机型中新增寻址方式中的术语。 其值可为1、2、4、8 段基址 若工作在实模式,段基址为段寄存器中的内容乘以16的值。 若工作在保护模式,段基址通过段寄存器中的段选择子从描述符中得到。 本章例中的物理地址按实模式计算。 偏移地址也可用符号地址来表示,如ADDR、 MOV SI , TABLE MOV AL, VAR 由于在汇编语言中用符号表示地址,VAR是内存的符号地址。 实际上在汇编语言源程序中所看到的直接寻址方式都是用符号表示的,只有在DEBUG环境下,才有[78H]这样的表示。 3.2.4.寄存器间接寻址方式 操作数在存储器中,操作数有效地址在某个寄存器中 16位间址寄存器 基址寄存器BX、BP 变址寄存器SI、DI 对于386以上CPU, 32位间址寄存器 允许使用任何32位通用寄存器。 默认的段寄存器 以BP,EBP或ESP作为基址寄存器访问存储器数据时,默认的段寄存器是SS; 所有其它寻址方式下的存储器数据访问都使用DS作为默认段寄存器 若指令中使用的是BX、SI、DI、EAX、EBX、ECX、EDX、ESI、EDI,则缺省情况操作数在数据段,即它们默认与DS段寄存器配合。 在指令中指定CS/SS/ES/FS/GS作为访问存储器数据时所引用的段寄存器,以改变默认的段寄存器。 3.2.5.寄存器相对寻址方式 操作数的有效地址是一个间址寄存器的内容和指令中给定的一个位移量(disp)之和。 16位寄存器相对寻址方式 EA= (BX)或(BP) 或(SI)或(DI)+disp 386以上允许使用任何32位通用寄存器做间址寄存器。位移量可以是一个字节、一个字、一个双字的带符号数。 EA=(32位通用寄存器)+disp 寄存器相对寻址方式 与段寄存器的配合情况: 若指令中寄存器相对寻址方式使用BP、EBP、ESP,则默认与SS段寄存器配合。使用其他通用寄存器,则默认与DS段寄存器配合。 均允许使用段超越前缀。 寄存器相对寻址方式 例: MOV AX, [BX+8] MOV CX, TABLE[SI] MOV AX, [BP+1000H] ; 默认段寄存器为SS 指令操作例:MOV AX,DATA[BX] 若(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档