80X86汇编语言程序设计 第二章③.8086 8088的寻址方式.doc

80X86汇编语言程序设计 第二章③.8086 8088的寻址方式.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
80X86汇编语言程序设计 第二章③.8086 8088的寻址方式

80X86汇编语言程序设计 第二章 8086/8088寻址方式和指令系统 三.8086/8088的寻址方式: 计算机是通过执行指令序列来解决问题的,因而每种计算机都有一组指令集提供给用户使用,这组指令集就称为计算机的指令系统。计算机中的指令由操作码字段和操作数字段两部分组成。 汇编语言是一种符号语言,它用助记符来表示操作码,用符号或符号地址来表示操作数或操作数地址。它与机器指令一一对应。 寻址方式:表示指令中用于说明操作数所在的地址的方法 8086/8088有七种基本的寻址方式,下面介绍这七种寻址方式: 1.立即寻址方式 操作数就包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。(源操作数)这种操作数称为立即数。 例如:指令:mov ax,1234H mov al,5 mov bx,3064H 2.寄存器寻址方式 操作数在CPU内部的寄存器中,指令指定寄存器号。对于16位操作数,寄存器可以是:AX.BX.CX.DX.SI.DI.SP.BP等。对于8位操作数,寄存器可以是:AH.AL.BH.BL.CH.CL.DH.DL等。这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数,因而可以取得较高的运算速度。 例如:mov ax,bx mov si,ax mov al,dh 3.直接寻址方式 操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)。操作数一般存放在数据段。所以操作数的地址由DS加上指令中直接给出的16位偏移得到。 例如:mov ax,[8054] DS=2000H 在汇编语言指令中,可以用符号地址代替数值地址 例如:mov ax,[value] mov ax,value 如value在附加段中,则应指定段超越前缀如下: mov ax,es:value mov ax,es:[value] 直接寻址方式常用于处理单个寄存器变量的情况。它可以实现在64K字节的段内寻找操作数。直接寻址的操作数通常是程序使用的变量。 注意立即寻址和直接寻址书写表示方法上的不同,直接寻址的地址要放在方括号中。在源程序中,往往用变量名表示。 4.寄存器间接寻址方式 操作数在存储器中,操作数有效地址在SI.DI.BX.BP这四个寄存器之一种。在一般情况下,如果有效地址在SI.DI.BX中,则以DS段寄存器之内容维断指。如果有效地址在BP中,则以SS段寄存器之内容为段值。 例如:mov ax,[si] (DS)=5000H (SI)=1234H 指令中叶可指定段超越前缀来取得其他段中的数据如: mov ax,es:[bx] mov [si],ax mov [bp],cx mov si,ax 5.寄存器相对寻址方式 操作数在存储器中,操作数的有效地址是一个基址寄存器(BX.BP)或变址寄存器的(SI.DI)内容加上指令中给定的8位或16位位移量之和。 即: EA(有效地址)=BX.BP.SI.DI+8位(16位)位移量 在一般情况下,如果SI.DI.BX之内容作为有效地址的一部分,那么引用的段寄存器是DS。如果BP之内容作为有效地址的一部分,那么引用的段寄存器是SS。 例如mov ax,[di+1223H] DS=5000H, DI=3678H 物理地址=50000+3678+1223=5489BH mov bx,[BP-4] mov es:[BX+5],AL 指令mov ax,[SI+3]与mov ax,3[SI]是等价的。 6.基址加变址寻址方式 操作数在存储器中,操作数的有效地址由:基址寄存器之一的内容与变址寄存器之一的内容相加 即 : EA=BX BP+SI DI 在一般情况下,如果BP之内容为有效地址的一部分,则以SS之内容为段值,否则以DS之内容为段值。 例如mov ax,[BX][DI] mov ax,ES:[BX+SI] 这种寻址方式适用于数组或表格处理。 下面两种表示方法是等价的: mov ax,[BX+DI] mov ax,[DI][BX] 7.相对基址加变址寻址方式 操作数在存储器中,操作数的有效地址由:基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的8位或16位位移量相加得到。 即: EA=BX BP+SI DI+8位或16位位移量 在指令中给定的8位或16位位移量采用补码形式表示。在计算有效地址时,如果位移量是8位,那么被带符号扩展成16位。 当所得的有效地址超

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档