第2章8086微处理器与汇编语言(上)

上传人:今*** 文档编号:107567277 上传时间:2019-10-20 格式:PPT 页数:67 大小:732KB
返回 下载 相关 举报
第2章8086微处理器与汇编语言(上)_第1页
第1页 / 共67页
第2章8086微处理器与汇编语言(上)_第2页
第2页 / 共67页
第2章8086微处理器与汇编语言(上)_第3页
第3页 / 共67页
第2章8086微处理器与汇编语言(上)_第4页
第4页 / 共67页
第2章8086微处理器与汇编语言(上)_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《第2章8086微处理器与汇编语言(上)》由会员分享,可在线阅读,更多相关《第2章8086微处理器与汇编语言(上)(67页珍藏版)》请在金锄头文库上搜索。

1、微机原理及其应用,普通高等教育“十一五”国家级规划教材,作者 丁新民,2007年5月,第二章 8086微处理器与汇编语言 (上),学习目标,1、识记8086微处理器的基本结构、系统总线周期、基本工作原理。 2、理解通用寄存器、段寄存器、标志和指针寄存器、基址和变址寄存器的功能和作用。 3、理解8086存储器的地址分段和结构,数据和程序地址的计算方法。 4、识记8086系统最大和最小模式,及其在不同方式下的工作时序要求。 5、理解80X86寻址方法的区别和应用要求。,2.1 8086系统结构 2.2 寻址方式,1. 8086内部结构 2. 寄存器组 3. 引脚及其功能 4. 总线周期 5. 存储

2、器组织 6. 输入/输出组织 7. 最小与最大模式系统,第一节 8086内部结构,8086分为总线接口部件BIU和执行部件EU两个部分,如图2-1-1所示。,1总线接口部件BIU,组成:由段寄存器和指令指针IP,指令队列缓存器,地址加法器和总线控制逻辑部件等。 作用:取指令、指令排队、读/写操作数、地址形成和总线控制。 (1)段寄存器 8086最大可寻址1MB存储空间,将1MB空间划分成若干个逻辑段,每个段最大为64KB,用段寄存器来存放段起始地址。内设CS、DS、SS和ES段寄存器,分别用来存放代码段、数据段、堆栈段和扩展数据段的基地址。,1总线接口部件BIU,(2)指令指针 指令指针(IP

3、)的功能类似于程序计数器PC,用来存放下一条要执行指令的偏移地址。指令地址由CS和IP构成。但是,程序是不能直接访问IP,只能由BIU自动修改。 (3)地址加法器 地址加法器用来计算20位存储地址。当执行部件计算出寻址单元的偏移量后,就与左移4位后的段寄存器内容一起送地址加法器进行相加,得到一个20位的存储地址。寻址单元的偏移地址可以来自IP,也可以来自其他寄存器。,1总线接口部件BIU,(4)指令队列缓存器 指令队列缓存器是用来暂存从存储器中取出的指令。指令队列缓存器为6个字节。指令队列采用FIFO的管理方式,预取6字节的指令代码。在执行指令的同时,从存储器中取下一条指令或几条指令,填充指令

4、队列缓存器。这样,CPU的取指令(BIU)和执行指令操作(EU)是并行的。 当指令队列中有一条指令或填满指令时,执行部件EU就从该队列中取出指令执行。EU从指令队列的输出端取出指令后,BIU自动调整指令队列输出端指针,并作指令预取操作。,1总线接口部件BIU,(4)指令队列缓存器(续) EU从指令队列取出指令,经指令译码分析后,向BIU申请从存储器或I/O端口读写操作数。只要收到EU送来的逻辑地址,BIU就通过专用的地址加法器,以现行的段寄存器和逻辑地址产生一个20位的存储地址送地址总线。当EU执行转移、调用或返回指令时,BIU将自动清除指令队列中原有的内容,重新填充指令队列。 (5)总线控制

5、逻辑 总线控制逻辑用于产生存储器读/写、I/O读/写控制信号。,2执行部件EU,EU组成: ALU、标志寄存器、通用寄存器组、暂存器、控制部件等。 作用:完成指令译码和执行指令的工作。 (1)ALU 16位的ALU用来对8位或16位操作数进行算术或逻辑运算。另外,16位的暂存器也可以参加运算。 (2)标志寄存器 16位标志寄存器用来表示ALU运算后的结果特征,为下一条指令的执行提供操作信息。,2执行部件EU,(3)通用寄存器组 通用寄存器组共有八个16位寄存器。其中,四个寄存器可用作存放数据或地址,四个为指针和变址寄存器。这些都可以参加算术和逻辑运算,具体内容将在下一节介绍 。 (4)控制部件

6、 主要用于取指令的控制和时序控制。 EU与BIU并行工作,提高了CPU的效率。,第二节 寄存器组,2寄存器组,如图2-1-2所示为8086的寄存器结构,共分为四组16位寄存器,它们分别是通用寄存器、指针和变址寄存器、段寄存器和标志位寄存器。,2寄存器组,(1)通用寄存器组 通用寄存器组由八个16位寄存器构成,按用途可分为数据寄存器和指针/变址寄存器两大类 。它们都可以参加算术和逻辑运算。 数据寄存器 由四个16位的AX、BX、CX和DX寄存器组成。每个寄存器可作为一个独立的16位寄存器使用,也可以分别编址成两个8位寄存器使用。这样,每个数据寄存器对应的高8位寄存器是AH、BH、CH和DH;低8

7、位寄存器是AL、BL、CL和DL。,2寄存器组, 数据寄存器(续)P38,2寄存器组, 指针和变址寄存器 由四个16位的寄存器SP、BP、SI和DI组成。这些寄存器存放段内的偏移量,用来形成操作数的存储地址。SP为堆栈指针、BP为基址指针、SI为源变址、DI为目标变址。 SP和BP使用SS堆栈段。若不特别指明某个段,则被认为使用现行堆栈段。SP始终指向栈顶。BP可指向堆栈段的任意单元。 SI和DI称为变址寄存器,通常与DS数据段一起使用。串操作指令中, 规定SI使用DS数据段, DI使用ES扩展数据段。,2寄存器组,(2)段寄存器组 段寄存器组由CS、DS、SS和ES四个16位的寄存器构成。,

8、2寄存器组,(2)段寄存器组(续) 8086通过CS得到执行指令的段基地址,加上指令指针IP中的指令偏移量,产生20位的存储器地址。例如CS4000H、IP004AH。那么,20位物理地址应该是4004AH单元。 40000 CS代码段内容左移4位 004A IP的段内偏移量 4004AH 下一条指令的存储地址 操作数所在段,可以在指令前加段前缀,若缺省前缀,则规定使用DS。对于BP和SP,系统默认使用SS。,2寄存器组,(3)指令指针 16位的指令指针IP,用来存放下一条指令在CS中的偏移量。IP的内容由总线接口部件BIU自动修改。指令顺序执行时,存放下一条待执行指令的偏移量;发生中断或调用

9、时,BIU自动将IP的偏移量压入堆栈保存。程序不能直接访问IP。 (4)标志寄存器 16位的标志寄存器含有九个有效标志位,分为条件标志位/程序状态字和控制标志位两个部分。,2寄存器组,(4)标志寄存器(续), 条件标志位 CF进位标志位:运算中发生进位或借位时,CF为“1”;否则,CF为“0”。用STC指令可设置CF为“1”、CLC指令置CF为“0”、CMC指令对CF求反;循环指令也会影响该标志位状态。,2寄存器组,(4)标志寄存器(续) 条件标志位(续) AF辅助进位标志位:在运算结果的低4位向高4位有进位或借位时,AF为“1”;反之,AF为“0”。 OF溢出标志位:运算结果超出机器表示范围

10、时,OF为“1”;否则,OF为“0”。带符号数的操作,若字节运算结果超过-128+127范围或者字运算结果超过-32768+32767范围时,OF为“1”。,2寄存器组,(4)标志寄存器(续) 条件标志位(续) ZF零标志位:运算结果为零时,ZF为“1”;否则,ZF为“0” 。 SF符号标志位:运算结果负数时,SF为“1”;否则,SF为“0”。 PF奇偶标志位:运算结果的低8位中有偶数个“1”时,PF为“1”;否则,ZP为“0” 。,2寄存器组,(4)标志寄存器(续) 控制标志位 DF方向标志位:DF为“0”时,变址地址指针SI、DI自动作增量操作,字节操作增量为1,字操作增量为2;DF为“1

11、”时,作减量操作。可用STD、CLD指令设置DF。 IF中断允许标志位:IF为“1”时,允许CPU响应中断请求;IF为“0”时,禁止响应。用STI 、 CLI指令设置IF。 TF陷阱标志位:TF为“1”时,CPU每执行完一条指令就产生一个内部中断。,第三节 引脚及其功能,3引脚及其功能,封装:双列直插式 40条引脚。 部分引脚分时复用 部分引脚具有双重功能 8088的引脚图 8086见P41,封装:双列直插式 40条引脚。 部分引脚分时复用 为了减少芯片的引线, 部分引脚具有双重功能, 采用分时复用方式工作。 8088的引脚图 8086见P41,3引脚及其功能,(1)数据和地址总线 AD15A

12、D0 地址/数据复用总线(输入/输出、三态)。 A19/S6A16/S3 地址/状态复用总线(输出、三态)。 BHE/S7 数据总线高位允许/状态复用引脚(输出、三态)。 (2)控制和状态线 RD 读控制(输出、三态)。 RAEDY 外部准备就绪(输入)。,3引脚及其功能,(2)控制和状态线(续) INTR 可屏蔽中断(输入)。 TEST 等待测试(输入)。 NMI 不可屏蔽中断(输入 )。 RESET 系统复位(输入)。 CLK 时钟(输入)。 Vcc (5V)电源(输入)。 GND 接地(输入)。 MN/MX 最小/最大模式选择(输入)。,3引脚及其功能,(3) 最小模式(MN/MXVcc

13、)控制和线状态 M/IO 存储器或输入/输出控制(输出、三态)。 WR 写控制(输出、三态)。 INTA中断响应(输出)。 ALE 地址锁存允许(输出 )。 DT/R 数据发送/接收(输出、三态)。 DEN 数据传输允许(输出、三态)。 HOLD 总线请求(输入)。 HLDA 总线响应(输出)。,3引脚及其功能,(4) 最大模式(MN/MXGND)控制和线状态 S2、S1、S0 总线周期状态(输出、三态)。 RQ/GT0、RQ/GT1 总线请求/总线允许(输入/输出)。 LOCK总线锁定信号(输出、三态)。 QS1、QS0 指令队列状态(输出)。,第四节 总线周期,4总线周期,8086的时钟脉

14、冲(CLK)由时钟发生器(如8284A)来提供,例如若机器的主频为10MHz,那么一个时钟周期为100ns。 8086CPU完成一个机器周期(将处理一条指令划分为几个不同的阶段,每个阶段称为一个机器周期)需要用四个时钟周期,即T1、T2、T3和T4状态。 典型的一个总线周期操作如图2-1-5所示,图中RD信号表示读总线周期,WR信号表示写总线周期,DT/R和DEN信号控制总线收发的传送方向和何时允许传送。,4总线周期,4总线周期,总线周期T1、T2、T3和T4的操作: T1状态,CPU发送地址信号,指出存储单元或I/O端口地址。同时,发出地址锁存允许信号ALE,地址送入地址锁存器。 T2状态,

15、CPU撤销地址,为读入数据作准备。总线高4位输出总线周期状态信息。 T3状态,总线高4位信息状态不变,地址总线低16位输出数据或从I/O端口或存储器输入数据。若末准备就绪,插入等待状态Tw,直到准备就绪。 在T4状态,总线周期结束。,第五节 存储器组织,2.1 8086结构,5存储器组织,(1)存储器基本结构 8086存储器按字节编址,寻址范围为0220-1,存储器最大容量为1MB。按00000H0FFFFFH编址,存储地址从低到高编址,如图2-1-6所示。,存储器中任何两个相邻的字节单元被定义为一个字,每个字节都有各自的字节地址。字节地址较小的作为字地址。字存放时,高位字节,5存储器组织,(

16、1)存储器基本结构(续) 存放在高地址,低位字节存放在低地址中。先存放低位字节,后存放高位字节。 8086是以地址编址为单位访问的,对于奇地址编址存取操作,就必须访问存储器两次,并且还要作调整操作。因此,要求字编址应被2整除;双字编址应被4整除;字节地址没有要求。 (2)存储器地址的分段 8086内部寄存器的宽度16位,寻址范围为64KB。为支持寻址20位物理空间,将1MB存储,5存储器组织,(2)存储器地址的分段(续) 空间划分成若干逻辑段,每个逻辑段最多包含64KB。逻辑段可在存储器中任意定义。逻辑段相互独立,可连续或相互重叠。,逻辑段基址能被16整除,各自有对应的段寄存器。由此,存储地址由段基址和段内偏移量构成的,如图2-1-7

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号