8086汇编寻址方式教程

8086汇编寻址方式教程

ID:40529169

大小:47.00 KB

页数:4页

时间:2019-08-04

8086汇编寻址方式教程_第1页
8086汇编寻址方式教程_第2页
8086汇编寻址方式教程_第3页
8086汇编寻址方式教程_第4页
资源描述:

《8086汇编寻址方式教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8086汇编寻址方式教程对于汇编语言,寻址方式绝对是最核心的一个部分,但是纷乱复杂的寻址方式又常常让人找不到方向和思路。所以今天我整理出一份教程,希望对初学者的学习能有所帮助。一.寻址目的所谓寻址,就是按照一定的规则寻找操作数。这个基本概念一定要搞清楚,不要云里雾里记了一大堆都不知道是找什么的。二.操作数可以存在什么地方?⑴操作数存在于指令代码中,处理器译码时就立即获得了这个操作数,这就是立即(数)寻址方式。汇编指令中,这个立即数(操作数)以常量形式出现。⑵操作数存在于处理器内部寄存器中,处理器从寄存器中获得这个操作数,这就是寄存器寻址

2、方式。汇编指令中,这个寄存器操作数以寄存器名形式出现。⑶操作数存在于主存中,处理器从主存单元获得这个操作数,这就是存储器寻址方式。汇编指令中,这个存储器操作数以主存地址形式出现。三.逻辑地址。8086/8088处理器的主存地址在程序设计时采用逻辑地址。逻辑地址分成段地址和偏移地址两部分。(这个一定想清楚,寻址在逻辑地址范围内,而不是直接在物理地址上查找。可以把存储系统看做一个黑匣子,我们程序员只考虑4g的寻址范围,具体怎么映射到物理地址上面,这是OS的任务,我们不必考虑)。存储器寻址方式表达存储器地址时,段地址在默认的或段超越前缀指令指

3、定的段寄存器中,偏移地址被称为有效地址EA(EffectiveAddress)。有效地址用中括号括起来。四.对寻址方式有个整体印象⑴有效地址直接给出,存在于指令代码中,就是直接寻址方式。⑵有效地址存在寄存器中,就是通过寄存器的间接寻址方式。⑶有效地址是两部分的和,一部分在基址(变址)寄存器中,另一部分直接给出(称为位移量),这就是基址(变址)寻址方式。⑷有效地址是两部分的和,一部分在基址寄存器中(8086是BX和BP),另一部分在变址寄存器中(8086是SI和DI),这就是基址变址寻址方式。⑸有效地址是三部分的和,第一部分在基址寄存器中

4、(8086是BX和BP),第二部分在变址寄存器中(8086是SI和DI),第三部分直接给出(称为位移量),这就是相对基址变址寻址方式。五.寻址方式详细解读(要求:要记住脉络,理解寻址流程,脑子中能有图,最后记住关键点)1.立即寻址立即寻址方式用来表示常数,它主要用于给寄存器赋初值,注意:只能用于源操作数字段,不能用于目的操作数字段。例1MOVAL,52.直接寻址在IBMPC机中将操作数的偏移地址称为有效地址EA。在直接寻址方式中有效地址EA就在指令中,它存放在代码段中指令操作码之后,但操作数一般存放在数据段中,所以必须先求出操作数的物理

5、地址,然后再访问存储器才能取得操作数.如操作数在数据段中,则物理地址=16d×(DS)十EA。1BMPC机中允许数据存放在数据段以外的其他段中,此时应在指令中指定段跨越前缀,在计算物理地址时应使用指定的段寄存器。例4movAX,[2000H](DS)=3000H,地址32000H中的值为3050H则,执行结果为;(Ax)=3050H因为实际movAX中的内容为16d*(Ds)+2000H =32000H在汇编语言指令中,可以用符号地址代替数值地址,如:MOVAX,VALUE此时VAIUE为存放操作数单元的符号地址。如写成MOVAX,[V

6、ALUE]也是可以的.两者是等效的。如果VALUE在附加段中,则应该指定段跨越前缀如下;MOVAX,ES:VALUE或MOVAX,ES:[VALUE]直接寻址方式适用于处理单个变量,例如需要处理某个存放在存储器里的变量,可用直接寻址方式,将该变量先取到一个寄存器中,然后在做处理。IBMPC机规定:除在双操作数中,除立即数外,必须有一个操作数使用寄存器方式。这也是一个常量常常送到寄存器去的原因。3.寄存器间接址操作数的有效地址在基址寄存器BX、BP或变垃寄存器SI、DI中,而操作数则在存储器中,如下图所示。a.如果指令中指定的寄存器是BX

7、、SI、DI,则操作数在数据段(DS)中,所以用DS寄存器的内容作为段地址,即操作数的物理地址为:物理地址=16d×(DS)十(BX)或物理地址;16d×(DS)十(SI)或物理地址=16d×(DS)十(DI)b.如指令中指定SP寄存器,则操作数在堆栈段(SS)中,段地址在SS中,所以操作数的物理地址为:物理地址=16d×(SS)十(SP)MOVAX,[BX]如果(DS)=2000H,(BX)=1000H则物理地址=16d×(DS)十(BX)=20000H+1000H=21000H21000H地址里的内容为50A0H则执行结果为:(AX

8、)=50A0Hc.指令中也可指定段跨越前缀来取得其他段中的数据。如;MOVAX,ES:[BX]这种寻址方式可以用于表格处理,执行完一条指令后,只需要修改寄存器内容就可取出表格中的下一项。4.寄存器相对寻址方

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。