- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言 寻址方式和堆栈
寻址方式的概念和基本分类;
7 种寻址方式及“两对”寻址方式的区别;
寻址方式与常量、变量和指针的关系;
堆栈概念、结构元素和操作指令。;CPU 访问内存的两个目的:
①读取指令;②存取数据。
CPU 访问内存的三种方式:
控制器自动取指循环;
程序控制方式访问数据段;
堆栈方式。; 一条汇编指令语句包含操作码和操作数两种信息,有些像自然文字的谓语和宾语:
操作码字段为指令,描述语句的功能;
操作数字段描述操作数或操作数的来源和去向;
CPU 获得操作数的方式叫作寻址方式。 ;三类寻址方式的特点:
寄存器寻址:存取数据在 CPU 内部进行,故速度最快;寄存器数量很少,寻址方式简单;
存储器寻址:为便于组织串、数组等数据结构复杂的数据处理,必须有更灵活、也就相对复杂的寻址方式,是本节的重点;
I/O端口寻址:I/O端口的任务是实现计算机核心和外界的数据交换,故寻址方式也相对简单。;3.1.1 寄存器寻址
当需要处理寄存器中的数据或将处理结果存入寄存器的时,使用“寄存器寻址”;在汇编语言中直接以寄存器名对寄存器寻址:
MOV DS, AX
意即将 AX 的内容送入数据段寄存器 DS。;8086汇编语言程序设计;3.1.2 立即数寻址
先看一例子:
MOV AX, 201H
这条指令将 16 进制数 201 送入寄存器 AX。存放结果的 AX 的寻址方式是“寄存器寻址”,而后面的 201H 是一个常数,它是随指令从代码段来的。由于这类操作数就在指令中,“立即”可以参与运算,故称作“立即数寻址方式”。因立即数伴随指令在代码段中,所以这种寻址也应属存储器寻址。;8086汇编语言程序设计;3.1.3 存储器寻址
存储器寻址必然涉及段,即最终要以逻辑地址
段基址:偏移量
形成物理地址。由于在大多数使用场合地址指针的段基址是“现成的”和隐含的,所以本小节讨论的重点是“有效地址”——偏移量的问题。
偏移量是某存储单元和段基址间的距离,又被称作有效地址。; 偏移量或有效地址的形成:
偏移量=位移量+基地址+变址量
上述三个分量的不同组合,演绎出存储器寻址的各种方式。
① 直接寻址
是在指令中直接给出操作数地址偏移量的寻址方式。比如把 200H 单元的内容送入AL:
MOV AL, [200H];8086汇编语言程序设计; 注意直接寻址和立即数寻址方式区别:方括号里的数字是操作数的有效地址,[200H]表示该单元的内容。
显然,直接寻址方式是非常直观的存储器寻址方式,但不方便处理整块的数据。
② 寄存器间接寻址
寄存器的内容是某存储单元的有效地址,以这种方式寻址就叫作寄存器间接寻址。; 如要将 200H 单元的内容送入 AL,使用寄存器间接寻址需要这样:
MOV BX, 200H
MOV AL,[BX]
所谓“间接” 就是操作数的取得是通过寄存器间接获得的。应注意寄存器间接寻址方式和寄存器寻址相区别:后者在意的目标的是寄存器的内容,而前者是寄存器的内容作为偏移量的存储单元的内容。;8086汇编语言程序设计; 两者的书写形式也不同,寄存器间接寻址时将用作间接寻址的寄存器用方括号括起来。
能用作存储器间接寻址的有下述地址指针寄存器:
BX, SI, DI, BP
显然,连续将上述寄存器的内容增一或减一,可方面地处理数据块,如处理一维数据或字符串,高精度数字运算等。可参与存储器寻址的寄存器又被成为“地址指针寄存器”,具备“准指针”的功能。;③ 变址寻址和基址寻址(寄存器相对寻址)
某地址指针寄存器的内容和指令中给出的位移量之和形成有效地址的寻址方式。它是直接寻址方式和寄存器间接寻址方式的一种组合,请看例子:
MOV AL,[BX+20H]
ADD AL,10[SI]
指令中10[SI]和[SI + 10]是等价的。;8086汇编语言程序设计; 和寄存器间接寻址方式相比,地址指针寄存器的内容可以从0开始,这样地址指针寄存器可以兼作计数器。
至于“变址寻址”和“基址寻址”的差异只涉及使用地址指针寄存器的不同,在编程应用上没有区别,故这两种寻址方式又统称为“寄存器相对寻址”。;④ 相对基址变址寻址
有效地址是基址寄存器的内容、变址寄存器的内容和指令中给出的位移量之和,如:
MOV AL, 20H[BX][SI]
MOV AH,80[BS][DI]
MOV DX,100H[BX][DI]
20
文档评论(0)