【汇编语言第3版】第2章实模式下存储器组织_第1页
【汇编语言第3版】第2章实模式下存储器组织_第2页
【汇编语言第3版】第2章实模式下存储器组织_第3页
【汇编语言第3版】第2章实模式下存储器组织_第4页
【汇编语言第3版】第2章实模式下存储器组织_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-161本章主要教学内容1.实模式下存储器的组织方式;2.实模式下存储器的寻址方式。本章主要教学目的及要求1.理解实模式下存储器的组织方式;2.掌握实模式下存储器的寻址方式及过程。教学重点及难点:实模式下存储器的寻址方式。汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1622.1 80X86和Pentium微处理器的功能结构 计算机结构CPU存储器IO系统执行部件EU8086总线接口部件BIU汇编语言程序设计汇编

2、语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-163内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)总线接口部件总线接口部件 (BIU)16位位20位位16位位8位位8086CPU8086CPU结构示意图结构示意图8个16位寄存器分别为AX、BX、CX、

3、DX、SP、BP、SI和DI,标志寄存器为FLAGS。指令执行部件功能:控制和执行指令组成:算术逻辑运算部件ALU、EU单元控 制系统、寄存器总线接口部件功能:预取指令和数据,总线 操作,信息传递。组成:指令队列、指令指针寄存器、地址加法器汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-164常用的状态标志功能:记录程序运行结果的状态(1)进位标志CF(2)零标志ZF(3)符号标志SF(4)溢出标志 OF (5)奇偶标志 PF (6)辅助进位标志AF包含9个标志位,保存一条指令执行后,CPU所处状态信息及运算结果的特征。808

4、6CPU寄存器分组寄存器分组累加器。用于算术、逻辑运算以及与外设传送信息等。基址寄存器,常于存放存储器地址计数器, 作为循环或串操作等指令中的隐含计数器。数据寄存器,用来存放双字数据的高16位,或存放外设端口地址变址和指针寄存器用于存放某个存储单元的偏移地址SP用于存放当前堆栈段中栈顶的偏移地址;BP用于存放堆栈段中某一存储单元的偏移地址。在字符串操作中,SI和DI都具有自动增量或减量的功能。保存下一次将要取出指令的偏移地址,IP的内容由微处理器硬件自动设置,有一些指令可改变IP的值,如转移指令、子程序调用指令等。控制标志功能:控制处理器执行指令的方式(1)方向标志DF(2)中断允许标志IF(

5、3)追踪标志TF数据寄存器用来保存操作数或运算结果等8086CPU的个16位的段寄存器:CS,DS,SS,ES。80386以后增添了FS和GS。段寄存器用来确定该段在内存中的起始地址。2.1.2 80 x86和Pentium微处理机的寄存器结构汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1652.2 实模式下存储器组织 实模式:全称为实地址存储管理操作模式,程序与数据运行在实 际存储空间,无存储保护。实模式来源:来源于8086微处理器。实模式存储管理方式:分段方式。注意:80286Pentium尽管寻址空间比8086/80

6、88大,但为了兼容,实 模式存储空间仍为1MB,采用同样分段方式管理。汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1662.2.1 存储单元的地址和内容1.存储单元的地址 定义:将存储单元编号,这个编号就是存储器地址。 表示:用十六进制数来表达地址。如:地址1234H 其中大写H(或小写h)表示是16进制数。2.存储单元的内容 定义:存储单元中存放的信息称为该存储单元的内容 表示:存储地址加”( )” 如果用X表示某存储单元的地址,则X单元的内容可以表示为(X); 假如X单元中存放着Y,而Y又是一个地址,则可用(Y)=(X

7、)来表示Y单元的内容。 汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1670000H0001H0002H0003H0004H0005H0006H1234H1235H1236H1237H1EH2FH34H12H 字单元由两个字节单元组成,其地址采用它的低地址来表示。字存入存储器:低位字节存入低地址单元,高位字节存入高地址单元。4号字单元的内容为1234H,表示为: (0004)=1234H 4号字节单元存放的信息为34H,表示:(0004)=34H 汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实

8、模式下存储器组织与寻址方式2021-6-1682.2.2 存储器地址的分段1.分段的原因及如何分段 原因:为了解决20位地址与16位字长的冲突 方法:每个段的大小64K机器规定,从0开始,每16个字节为一小段 00000,00001,00002,0000E,0000F; 00010,00011,00012,0001E,0001F; 00020,00021,00022,0002E,0002F; 其中,第一列就是每个小段的首地址。 2.段地址和偏移地址 段地址:表示一个段的开始 偏移地址:在段内相对于段起始地址的偏移值汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式

9、下存储器组织与寻址方式2021-6-169 3.物理地址的形成 物理地址:每一个存储单元的一个唯一的20位地址 表示范围:00000HFFFFFH 。 形成:段地址左移4位再加上偏移地址值 15 0 15 0000016位偏移地址16位段地址+19 020位物理地址汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1610段分配方式一一般情况下,各段在存储器中的分配是由操作系统负责的。段寄存器CSDSSSES0150H4200H1CD0HB000H01500H1CD00H42000HB0000H 图2-2段分配方式之一存储器 6

10、4KB代码 64KB堆栈 64KB数据64KB附加数据4.段地址与段寄存器 实模式下,在8086Pentium微处理机中,代码段的段地址 放在CS中;数据段的段地址放在DS中;堆栈段的段地址存放在SS中;附加段的段地址存放在ES中。汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1611段分配方式二段寄存器CSDSSSES0200H0400H0480H段分配方式之二02000H04000H04800H存储器8KB代码256B堆栈2KB数据汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组

11、织与寻址方式2021-6-1612 缺省16位段+偏移寻址组合 段 偏移 主要用途 CS IP 指令寻址 SS SP或BP 堆栈寻址 DS BX,DI,SI或16位数 数据寻址 ES 串指令DI 目标串寻址5.隐含段和偏移寄存器 8086Pentium微处理机中,段寄存器和偏移寄存器组合有一定 规则。汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1613 缺省32位段+偏移寻址组合 段 偏移 主要用途 CS EIP 指令寻址 SS ESP或EBP 堆栈寻址 DS EAX、EBX、ECX、EDX、 EDI、ESI、8位或32位

12、数 数据寻址 ES 串指令DI 串指令寻址 FS 不缺省 一般寻址 GS 不缺省 一般寻址 程序需要改变段寄存器和偏移的缺省组合,改变方法在指令中说明。 如:MOV AX,ES:BX ;ES作段寄存器,BX作间址寄存器寻址 。汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-16146.段加偏移的优点 允许程序在存储器内重定位,允许在保护模式下运行实模式下编 写的程序。汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1615功能:源操作数的内容传送到目标操作数;

13、源操作数中的内容不变。2.3 寻址方式MOV指令格式:MOV DST,SRC例:MOV AX,BX MOV 2000H,35定义:寻找指令中操作数的方式或寻找指令转移目标地址的方式分类:数据寻址方式和程序寻址方式汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-1616定义:用一个32位基址寄存器的内容加上一个32位变址寄存器的内容与一个比例因子的积来寻址内存 定义:用基址或变址寄存器内容位移量来寻址内存 定义:用一个基址寄存器和一个变址寄存器间接寻址内存 EABX/BPSI/DI定义:用一个基址加一个变址寄存器的内容再加上偏移

14、量寻址内存注意:80386以上微处理器中,这种寻址方式适用于除ESP以外的任意两个32位扩展寄存器组合 例: MOV BL,NUMBER MOV AX,2000H例:MOV CL,BX MOV BP,DL 定义:操作数的地址在基址或变址寄存器中 注意:除MOVS指令,系统不支持从存储单元直接到存储单元的传递 寄存器间接寻址方式寄存器reg可以是:8位、16位、32位、段寄存器定义:操作数在存储器中定义:操作数直接存放在指令中EA BX/BP/SI/DI位移量EA BX/BPSI/DI位移量注意:立即数只能作为源操作数 直接寻址方式数据寻址方式立即数寻址方式例:MOV AX,44H MOV AL

15、,A 寄存器寻址方式定义:操作数存放在寄存器中例:MOV BL,AL MOV AX,CX基址变址寻址例:MOV AX ,BXSI MOV BX ,BPSI寄存器相对寻址例:MOV BL,DI+100 MOV ARRAYSI,CL相对基址变址寻址例:MOV BL,BX+DI+100 MOV AX,FILEBX+SI比例变址寻址例:MOV EAX ,EBX4*ECX MOV EAX ,ARRAY4*ECX MOV AX ,EBX2*EDI2.3.1数据寻址方式 汇编语言程序设计汇编语言程序设计第二章第二章 实模式下存储器组织与寻址方式实模式下存储器组织与寻址方式2021-6-16172.3.2 程序存储器寻址方式 用途:确定转移指令和子程序调用指令的转向地址分类:直接、相对和间接。程序寻址方式直接程序寻址 远转移(段间转移 ) 含义:CS和IP的值都发生变化 近转移(段内转移 ) 含义:CS的值不改变,只改变IP的值 例:JMP BEGIN JMP NEAR PTR PROG例:JMP FAR PTR NEXT 相对程序寻址 短转移近转移位移量是1个字节 位移量是2个字节 EA=IP+位移量 间接程序寻址 例:JMP SHORT PR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论