版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8086汇编语言程序设计1C 寻址方式的概念和基本分类;寻址方式的概念和基本分类;C 7 种寻址方式及种寻址方式及“两对两对”寻址方式的区别;寻址方式的区别;C 寻址方式与常量、变量和指针的关系;寻址方式与常量、变量和指针的关系;C 堆栈概念、结构元素和操作指令。堆栈概念、结构元素和操作指令。本章要点本章要点8086汇编语言程序设计2CPU 访问内存的两个目的:访问内存的两个目的:读取指令;读取指令;存取数据。存取数据。CPU 访问内存的三种方式:访问内存的三种方式: 控制器自动取指循环;控制器自动取指循环; 程序控制方式访问数据段;程序控制方式访问数据段; 堆栈方式。堆栈方式。第第三三章章
2、寻址方式及堆栈寻址方式及堆栈8086汇编语言程序设计3 一条汇编指令语句包含操作码和操作数两种一条汇编指令语句包含操作码和操作数两种信息,有些像自然文字的谓语和宾语:信息,有些像自然文字的谓语和宾语:操作码字段为指令,描述语句的功能;操作码字段为指令,描述语句的功能;操作数字段描述操作数或操作数的来源和去向;操作数字段描述操作数或操作数的来源和去向;CPU 获得操作数的方式叫作寻址方式。获得操作数的方式叫作寻址方式。 3.1 寻址方式寻址方式操作数或操作数的地址操作数或操作数的地址操作码操作码8086汇编语言程序设计4三类三类寻址方式的特点:寻址方式的特点: 寄存器寻址:存取数据在寄存器寻址:
3、存取数据在 CPU 内部内部进行,故进行,故速度最快;寄存器数量很少,寻址方式简单;速度最快;寄存器数量很少,寻址方式简单; 存储器寻址:为便于组织串、数组等数据结构存储器寻址:为便于组织串、数组等数据结构复杂的数据处理,必须有更灵活、也就相对复杂复杂的数据处理,必须有更灵活、也就相对复杂的寻址方式,是本节的重点;的寻址方式,是本节的重点; I/O端口寻址:端口寻址:I/O端口的任务是实现计算机核端口的任务是实现计算机核心和外界的数据交换,故寻址方式也相对简单。心和外界的数据交换,故寻址方式也相对简单。8086汇编语言程序设计53.1.1 寄存器寻址寄存器寻址 当需要处理寄存器中的数据或将处理
4、结果存当需要处理寄存器中的数据或将处理结果存入寄存器的时,使用入寄存器的时,使用“寄存器寻址寄存器寻址”;在汇编语;在汇编语言中直接以寄存器名对寄存器寻址:言中直接以寄存器名对寄存器寻址: MOV DS, AX 意即将意即将 AX 的内容送入数据段寄存器的内容送入数据段寄存器 DS。8086汇编语言程序设计68086汇编语言程序设计73.1.2 立即数寻址立即数寻址 先看一例子:先看一例子:MOVAX, 201H 这条指令将这条指令将 16 进制数进制数 201 送入寄存器送入寄存器 AX。存放结果的存放结果的 AX 的寻址方式是的寻址方式是“寄存器寻址寄存器寻址”,而,而后面的后面的 201
5、H 是一个常数,它是随指令从代码段来是一个常数,它是随指令从代码段来的。的。由于这类操作数就在指令中,由于这类操作数就在指令中,“立即立即”可以参可以参与运算与运算,故称作,故称作“立即数寻址方式立即数寻址方式”。因立即数伴。因立即数伴随指令在代码段中,所以这种寻址也应属存储器寻随指令在代码段中,所以这种寻址也应属存储器寻址。址。8086汇编语言程序设计88086汇编语言程序设计93.1.3 存储器寻址存储器寻址 存储器寻址必然涉及段,即最终要以逻辑地址存储器寻址必然涉及段,即最终要以逻辑地址 段基址段基址: :偏移量偏移量 形成形成物理地址物理地址。由于在大多数使用场合地址指。由于在大多数使
6、用场合地址指针的段基址是针的段基址是“现成的现成的”和隐含的,所以本小节讨和隐含的,所以本小节讨论的重点是论的重点是“有效地址有效地址”偏移量的问题。偏移量的问题。 偏移量偏移量是某存储单元和段基址间的距离,又被是某存储单元和段基址间的距离,又被称作称作有效地址有效地址。8086汇编语言程序设计10F 偏移量或有效地址的形成:偏移量或有效地址的形成: 偏移量位移量基地址变址量偏移量位移量基地址变址量 上述三个分量的不同组合,演绎出存储器寻上述三个分量的不同组合,演绎出存储器寻址的各种方式。址的各种方式。 直接寻址直接寻址 是在指令中是在指令中直接给出操作数地址直接给出操作数地址偏移量的寻偏移量
7、的寻址方式。比如把址方式。比如把 200H 单元的内容送入单元的内容送入AL: MOV AL, 200H8086汇编语言程序设计118086汇编语言程序设计12 注意直接寻址和立即数寻址方式区别:方括注意直接寻址和立即数寻址方式区别:方括号里的数字是操作数的有效地址,号里的数字是操作数的有效地址,200H表示该表示该单元的内容。单元的内容。 显然,直接寻址方式是非常直观的存储器寻显然,直接寻址方式是非常直观的存储器寻址方式,但不方便处理整块的数据。址方式,但不方便处理整块的数据。 寄存器间接寻址寄存器间接寻址 寄存器的寄存器的内容内容是某存储单元的有效地址,以是某存储单元的有效地址,以这种方式
8、寻址就叫作寄存器间接寻址。这种方式寻址就叫作寄存器间接寻址。8086汇编语言程序设计13 如要将如要将 200H 单元的内容送入单元的内容送入 AL,使用寄存,使用寄存器间接寻址需要这样:器间接寻址需要这样: MOVBX, 200H MOVAL,BX 所谓所谓“间接间接” 就是操作数的取得是通过寄存就是操作数的取得是通过寄存器间接获得的。应注意寄存器间接寻址方式和寄器间接获得的。应注意寄存器间接寻址方式和寄存器寻址相区别:后者在意的目标的是寄存器的存器寻址相区别:后者在意的目标的是寄存器的内容,而前者是寄存器的内容作为偏移量的存储内容,而前者是寄存器的内容作为偏移量的存储单元的内容。单元的内容
9、。8086汇编语言程序设计148086汇编语言程序设计15 两者的书写形式也不同,寄存器间接寻址时将两者的书写形式也不同,寄存器间接寻址时将用作间接寻址的寄存器用方括号括起来。用作间接寻址的寄存器用方括号括起来。 能用作存储器间接寻址的有下述地址指针寄存能用作存储器间接寻址的有下述地址指针寄存器:器: BX, SI, DI, BP 显然,连续将上述寄存器的内容增一或减一,显然,连续将上述寄存器的内容增一或减一,可方面地处理数据块,如处理一维数据或字符串,可方面地处理数据块,如处理一维数据或字符串,高精度数字运算等。可参与存储器寻址的寄存器又高精度数字运算等。可参与存储器寻址的寄存器又被成为被成
10、为“地址指针寄存器地址指针寄存器”,具备,具备“准指针准指针”的功的功能。能。8086汇编语言程序设计16 变址寻址和基址寻址(寄存器相对寻址)变址寻址和基址寻址(寄存器相对寻址) 某地址指针寄存器的内容和指令中给出的位某地址指针寄存器的内容和指令中给出的位移量之和形成有效地址的寻址方式。它是直接寻移量之和形成有效地址的寻址方式。它是直接寻址方式和寄存器间接寻址方式的一种组合,请看址方式和寄存器间接寻址方式的一种组合,请看例子:例子:MOV AL,BX+20HADD AL,10SI指令中指令中10SI和和SI + 10是等价的。是等价的。8086汇编语言程序设计178086汇编语言程序设计18
11、 和寄存器间接寻址方式相比,地址指针寄存和寄存器间接寻址方式相比,地址指针寄存器的内容可以从器的内容可以从开始,这样地址指针寄存器可开始,这样地址指针寄存器可以兼作计数器。以兼作计数器。 至于至于“变址寻址变址寻址”和和“基址寻址基址寻址”的差异只的差异只涉及使用地址指针寄存器的不同,在编程应用上涉及使用地址指针寄存器的不同,在编程应用上没有区别,故这两种寻址方式又统称为没有区别,故这两种寻址方式又统称为“寄存器寄存器相对寻址相对寻址”。8086汇编语言程序设计19 相对基址变址寻址相对基址变址寻址 有效地址是基址寄存器的内容、变址寄存器的有效地址是基址寄存器的内容、变址寄存器的内容和指令中给
12、出的位移量之和,如:内容和指令中给出的位移量之和,如:MOV AL, 20HBXSIMOV AH,80BSDIMOV DX,100HBXDI 20HBXSI 也可以写成也可以写成 20H+BX+SI。这种。这种寻址方式能比较方便地处理二维数组等更复杂的寻址方式能比较方便地处理二维数组等更复杂的结构数据。结构数据。8086汇编语言程序设计208086汇编语言程序设计21 由于基于由于基于 BP 的基址变址寻址的隐含段寄存器是的基址变址寻址的隐含段寄存器是堆栈段堆栈段 SS,所以在数据段的这种寻址方式常是,所以在数据段的这种寻址方式常是 BX分别和分别和 SI 和和 DI 配合。配合。 可以认为相
13、对基址变址寻址方式是最一般的寻址可以认为相对基址变址寻址方式是最一般的寻址方式,其他寻址方式都可以看作是基址变址寻址方式方式,其他寻址方式都可以看作是基址变址寻址方式的特例。比如:的特例。比如: MOV AL, 100H+BX+SI 去掉其中任一个或二个分量就会是某种其他寻址去掉其中任一个或二个分量就会是某种其他寻址方式。方式。8086汇编语言程序设计223.1.4 寻址方式与常量、变量及寻址方式与常量、变量及“准指针准指针” 立即数立即数寻址方式对应汇编语言的寻址方式对应汇编语言的常常量;量; 存储器寻址存储器寻址方式对应汇编语言的方式对应汇编语言的变变量;量; 在各种地址指针寄存器参与的存
14、储器寻址方式在各种地址指针寄存器参与的存储器寻址方式中,中,地址指针寄存器充当地址指针寄存器充当“准指针准指针”的角色的角色。 串操作寻址和串操作寻址和 I/O 寻址以后介绍。寻址以后介绍。8086汇编语言程序设计23物理地址、段、逻辑地址和寻址方式小结:物理地址、段、逻辑地址和寻址方式小结: 物理地址是地址信号和译码逻辑对存储单元的物理地址是地址信号和译码逻辑对存储单元的唯一指定,本质上是组合逻辑电路的一种应用:唯一指定,本质上是组合逻辑电路的一种应用:地址译码逻辑CPU数据总线地址总线内存译码寻址方式8086汇编语言程序设计24 8088/8086寻址(或管理)寻址(或管理)1M的存储空间
15、是的存储空间是通通过段来实现的:过段来实现的: 段寄存器的内容存放和提供段基址的高段寄存器的内容存放和提供段基址的高 16 位,位,用于指定低四位为零的存储单元作为段的起点;用于指定低四位为零的存储单元作为段的起点; 16 位段内偏移量确定段内具体单元,段内管理位段内偏移量确定段内具体单元,段内管理64K 的存储空间;的存储空间; 段寄存器的内容即段基址的高段寄存器的内容即段基址的高 16 位和段内偏移位和段内偏移量合称为逻辑地址:量合称为逻辑地址: 段基址的高段基址的高 16 位位 :段内偏移量:段内偏移量8086汇编语言程序设计25 8088/8086 CPU 按代码段、数据段、堆栈段、按
16、代码段、数据段、堆栈段、附加段对内存进行分类管理附加段对内存进行分类管理: 代码段:代码段:CS : IP; 堆栈段堆栈段:SS : SP; 数据段数据段:DS : 位移量基址量变址量位移量基址量变址量8086汇编语言程序设计26 寻址方式寻址方式 寄存器寻址方式(访问寄存器寻址方式(访问 CPU 完成数据处理的接完成数据处理的接口,按口,按“直呼其名直呼其名”的方式进行);的方式进行); 立即数寻址方式(伴随指令序列来自于代码段的立即数寻址方式(伴随指令序列来自于代码段的常量)常量); 数据段寻址是三种偏移分量的组合数据段寻址是三种偏移分量的组合: 位移量基址量变址量位移量基址量变址量808
17、6汇编语言程序设计27 堆栈是由堆栈是由 CPU 控制的按控制的按“后进先出后进先出”顺序顺序存取数据的存储结构,用于暂存子程序调用、中存取数据的存储结构,用于暂存子程序调用、中断断点的信息和数据。堆栈的用途在这里只作一断断点的信息和数据。堆栈的用途在这里只作一点说明,只有在学习了子程序调用、中断断点的点说明,只有在学习了子程序调用、中断断点的保护等才会知道为什么要使用堆栈这种特殊的存保护等才会知道为什么要使用堆栈这种特殊的存储结构。本节的重点是:储结构。本节的重点是:堆栈的结构元素和操作堆栈的结构元素和操作指令指令。3.2 堆栈堆栈8086汇编语言程序设计283.2.1 堆栈的构造堆栈堆栈B
18、OTTOMTOP由由SP指向指向存储器存储器0H8086汇编语言程序设计29 堆栈是在存储器中划出的一个部分;堆栈是在存储器中划出的一个部分; 地址最高的字单元叫作地址最高的字单元叫作“栈底(栈底(Bottom)”; 入栈的数据从栈底开始逐个入栈的数据从栈底开始逐个向地址低端向地址低端存入;存入; 用堆栈指针用堆栈指针 SP 指向最后入栈的数据,习惯上指向最后入栈的数据,习惯上把把 SP 所指的位置叫作所指的位置叫作“栈顶栈顶(Top)”; 数据是按数据是按 SP 的指向出入堆栈,从而实现了的指向出入堆栈,从而实现了“后进先出后进先出”的存取机制的。的存取机制的。8086汇编语言程序设计303
19、.2.2 8086 的堆栈的堆栈 堆栈的组织堆栈的组织堆栈堆栈BOTTOMTOP由由SP指向指向存储器存储器00000HSS8086汇编语言程序设计31C 堆栈是由堆栈是由 SS 的内容为起点的一段存储区;的内容为起点的一段存储区;C SP 指向栈顶;指向栈顶;C 以字为单位进行存取;以字为单位进行存取;C 当堆栈初始化或为空时,当堆栈初始化或为空时,SP 的值是堆栈段的实的值是堆栈段的实际长度,际长度,SP 指向栈底之下的第二个字节指向栈底之下的第二个字节;C 栈的最大空间是栈的最大空间是 64KB,栈的最大深度是,栈的最大深度是 32K;C 入栈的字,低字节存放在入栈的字,低字节存放在 SP 所指的单元,高字所指的单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ISO14001环境管理体系实施与审核要点
- 幼儿园种子发芽科学实验设计
- 初中英语听力提升训练资料
- 基于免疫检查点的新型鼻咽部肿瘤疫苗设计研究-洞察及研究
- 四年级上册阅读理解教学设计
- 健身服务心理效应-洞察及研究
- 基因编辑技术在骨骼营养素缺陷模型中的应用研究-洞察及研究
- 滑膜炎微生物组与炎症反应-洞察及研究
- 区块链投资策略-第1篇-洞察及研究
- 分析分离技术在流程优化中的应用-洞察及研究
- 2025年全国中小学生天文知识竞赛试题库(含答案)
- OTDR的操作使用课件
- 125w短波电台课件
- 轻医美面部风水课件
- 中国民族乐器弦乐器课件
- 老师餐费补贴管理办法
- 物业管理师考试真题及答案
- 2025年农机证理论考试题库
- 知道智慧树电路分析基础(浙江大学)满分测试答案
- 2025 重症医学科感染性休克集束化医学查房课件
- 二类精神病药品培训课件
评论
0/150
提交评论