第1页共10页第二章:8086微机系统体系结构通过本章的学习,应该掌握以下内容:•8086CPU的结构•8086CPU引脚功能•8086系统的结构和配置•8086CPU的操作时序•80x86典型微机简介2、18086/8088微处理器2、1、18086/8088微处理器的结构及执行程序的操作过程8086:Intel系列的16位微处理器,16条数据线、20条地址线,可寻址地址范围220=1MB,8086工作时,只要一个+5V电源和一个时钟,时钟频率为5MHz。8088:内部与8086兼容,也是一个16位微处理器,只是外部数据总线为8位,所以称为准16位微处理器。它具有包括乘法和除法的16位运算指令,所以能处理16位数据,还能处理8位数据。8088有20根地址线,所以可寻址的地址空间达1MB。1、总线接口部件(BIU)功能:负责与外部存储器及I/O口通信(1)、从取指令送到指令队列。(2)、CPU执行指令时,到指定的位置取操作数,并将其送至要求的位置单元中。总线接口部件的组成:(1)、四个段地址寄存器:均为16位代码段寄存器CS:存放当前程序段的段基址数据段寄存器DS:存放当前数据段的段基址附加段寄存器ES:存放当前附加段的段基址堆栈段寄存器SS:存放当前堆栈段的段基址(2)、16位指令指针寄存器IP(PC)。(3)、20位的地址加法器。(4)、六字节的指令队列缓冲器。说明:(1)、指令队列缓冲器:在执行指令的同时,将取下一条指令,并放入指令队列缓冲器中。CPU执行完一条指令后,可以取出下一条指令(流水线技术)。提高CPU效率。(2)、地址加法器:产生20位地址。CPU内无论是段地址寄存器还是偏移量都是16位的,通过地址加法器产生20位地址。2、执行部件(EU)作用:负责执行指令(1)、从指令队列中取出指令。(2)、对指令进行译码,发出相应相应的控制信号。(3)、接收由总线送来的数据或发送数据。(4)、进行算术、逻辑运算。执行部件的组成:(1)、四个通用寄存器AX(累加器)、BX(基址寄存器)、CX(计数器)、DX(数据寄存器)。这四个通用寄存器都是16位或作两个8位来使用。(2)、专用寄存器(4个)SP------堆栈指针寄存器BP------基址指针寄存器第2页共10页DI-------目的变址寄存器SI-------源变址寄存器(3)、算术逻辑单元ALU完成8位或者16位二进制算术和逻辑运算,计算偏移量。(4)、数据暂存寄存器协助ALU完成运算,暂存参加运算的数据。(5)、执行部件的控制电路从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据流向。(6)、标志寄存器16位寄存器,其中有7位未用。3、8086/8088CPU执行程序的操作过程(1)、20位地址的形成,并将此地址送至程序存储器指定单元,从该单元取出指令字节,依次放入指令队列中。(2)、每当8086的指令队列中有2个空字节,8088指令队列中有1个空字节时,总线接口部件就会自动取指令至队列中。(3)、执行部件从总线接口的指令队列首取出指令代码,执行该指令。(4)、当队列已满,执行部件又不使用总线时,总线接口部件进入空闲状态。(5)、执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。2、1、28086/8088微处理器的引脚功能根据所连的存储器和外设规模的不同,使它们可以在两种模式下工作:系统的最小模式:只有一8086/8088CPU。系统的最大模式:有两个或两个以上的CPU,一个为主CPU8086/8088,另一个为协CPU8087/8089。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。而当系统规模较大时,要求有较强的驱动能力,这样就需要两个获两个以上的微处理器。其中有一个是主处理器8086或8088,其它的处理器称为协处理器,它们协助主处理器工作。例如8088便通过总线控制器8288来形成各种控制信号。如图所示,为8086CPU和8088CPU的引脚信号图。共有40条引脚线,这些引脚线用来输出或接收各种信号:地址线,数据线,控制线和状态线,电源线和定时线。由于8088微处理器是一种准16位机。其内部结构基本上与8086相同,其信号也与8086基本相同,只是有一些引脚的功能有所不同,在这里,我们将以8086为例,具体介绍一下最小模式下和最大模式下各位引脚功能,如出现功能不同的引脚再具体讲解。1、地址/数据总线AD15-AD0:地址/数据复用引脚,双向,三态。•AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。•AD15-AD0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。•地址/数据总线复用,分时工作。2、地址/状态总线A19/S6-A16/S3A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。A19/S6-A16/S3:输出访问存储器的20位地址的高4位地址A19-A16。A19/S6-A16/S3:输出CPU的工作状态。A19/S6-A16/S3:分时工作,T1状态:输出地址的高4位信息;T2、T3、T4状态:输出状态信息。第3页共10页S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。S4、S3组合所对应的段寄存器情况S4S3段寄存器00当前正在使用ES01当前正在使用SS10当前正在使用CS11当前正在使用DS3、控制总线(1)、/BHE/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上的数据有效。在T2、T3、TW和T4状态时,此引脚输出S7状态信号。/BHE、A0组合:/BHEA0总线使用情况00从偶地址单元开始,在16位数据总线上进行字传送01从奇地址单元开始,在高8位数据总线上进行字节传送10从偶地址单元开始,在低8位数据总线上进行字节传送11无效S7:8086中无定义。8088中,在最大模式中,为高电平;在最小模式中,输出SS0信号,此信号与其它信号合作将总线周期的读/写动作。(2)、RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)、WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。(4)、M/IO:存储器或IO端口访问信号,三态输出。M/IO=1,表示CPU正在访问存储器;M/IO=0,表示CPU正在访问IO端口。(5)、READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。(6)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(7)、/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)、NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。(9)、/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0(10)、RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。(11)、ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。(12)、DT/R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送第4页共10页方向,DT//R=1,发送数据----写操作;DT//R=0,接收数据--读操作。(13)、DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。(14)、HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)、HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。(16)、MN/MX:工作模式选择信号,输入。MN/MX=1,表示CPU工作在最小模式系统;MN/MX=0,表示CPU工作在最大模式系统。(17)、CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。4、电源线和地线8086/8088采用单+5V,1、20引脚为地线。5、最大模式下的有关引脚(1)、QS1、QS2:指令队列状态信号,输出。QS1QS2含义00无操作01将指令首字节送入指令队列10队列为空11将指令其余字节送指令队列(2)、S2、S1、S0:总线周期状态信号,三态输出。S2、S1、S0状态信号的编码S2S1S0操作过程产生信号000发中断响应信号/INTA001读I/O端口IORC010写I/O端口IOWC011暂停无100取指令/MRDC101读存储器/MRDC110写存储器/AMWC111无作用无(3)、/RQ//GT1、/RQ//GT2:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。(4)、/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。•容量的确定:•地址总线包含8根地址线时:•28=256字节=256B,共计:256B•地址总线包含20根地址线时:•220=1MB2.28086系统存储器的组织和堆栈•8086CPU只有连接存储器和I/O口,可工作在最大和最小模式。•一、8086存储器结构•1、特点:•(1)、8086CPU有20位地址线,可最大寻址存储•空间1MB,即每一个存储器单元地址是20位,存储器地址范围00000H~FFFFFH。•(2)、1MB存储空间分为多个逻辑段,每个逻辑段容量≤64KB,各逻辑段之间可紧密相连或相互重迭。第5页共10页•(3)存储器中任何两个相邻的单元字节定义为一个“字”,且较•小的地址为该字的地址。•一个字的起始地址可以从偶地址(对准字)开始,也可以从•奇地址开始(非对准字)。且较高的地址单元存放该字的高8位,•较低地址的单元存放该字的低8位。(一般从偶地址开始)。2.28086系统存储器的组织和堆栈1、8086/8088系统存储器的组织操作时:8086/8088是16位的微处理器,在组成存储系统时,总是使偶地址单元的数据通过AD0~AD7传送,而奇地址单元的数据通过AD8~AD15传送,所有的操作可以是按字节为单位也可以是按字为单位来处理的,但8086/8088系统中的存储器是以8位(一个字节)为单位对数据进行处理的。因此每个字节用一个唯一的地址码表示,这称为存储器的标准结构。存储器与8086CPU连接时,1MB的空间,实际被分成两个512KB的存储空间2、8086存储器的分段结构由于8086/8088有20条地址线,可以寻址多达220(1M)字节,所以把1M字节的存储器分为任意数量的逻辑段,一个存储段是存储器中可独立寻址的一个逻辑单位,其中每一段寻址≤64KB。