您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第二章8086微处理器
第二章8086/8088微处理器及其系统结构内容提要:1.8086微处理器结构:CPU内部结构:总线接口部件BIU,执行部件EU;CPU寄存器结构:通用寄存器,段寄存器,标志寄存器,指令指针寄存器;CPU引脚及其功能:公用引脚,最小模式控制信号引脚,最大模式控制信号引脚。2.8086微机系统存储器结构:存储器地址空间与数据存储格式;存储器组成;存储器分段。3.8086微机系统I/O结构4.8086最小/最大模式系统总线的形成5.8086CPU时序6.最小模式系统中8086CPU的读/写总线周期7.微处理器的发展学习目标1.掌握CPU寄存器结构、作用、CPU引脚功能、存储器分段与物理地址形成、最小/最大模式的概念和系统组建、系统总线形成;2.理解存储器读/写时序;3.了解微处理器的发展。难点:1.引脚功能,最小/最大模式系统形成;2.存储器读/写时序。学时:8问题:为什么选择8088/8086?•简单、容易理解掌握•与目前流行的P3、P4向下兼容,形成x86体系•16位CPU目前仍在大量应用思考题1、比较8086CPU与8086CPU的异同之处。2、8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?3、CPU的运算功能是由ALU实现的,8086CPU中有几个ALU?是多少位的ALU?起什么作用?4、8086CPU有哪些寄存器?各有什么用途?标志寄存器的各标志位在什么情况下置位?5、8086CPU内哪些寄存器可以和I/O端口打交道,它们各有什么作用?6、8086系统中的物理地址是如何得到的?假如CS=2400H,IP=2l00H,其物理地址是多少?思考题1.从时序的观点分析8088完成一次存储器读操作的过程?2.什么是8088的最大、最小模式?3.在最小模式中,8088如何产生其三总线?4.在最大模式中,为什么要使用总线控制器?思考题1.试述最小模式下读/写总线周期的主要区别。2.CPU响应中断时,为什么要执行两个连续的中断响应周期?3.当8086微处理器响应总线请求发出HLDA信号后,有哪些引脚信号处于高阻?4.8086/8088微处理器响应总线请求发出HLDA信号后,执行部件EU会立即停止操作吗?为什么?5.在8086系统中,地址/数据复用信号是如何区分的?6.总线周期的含义是什么?8086/8088的基本总线周期由几个时钟组成?如果一个CPU的时钟频率为4.77MHz,那么它的一个时钟周期为多少?一个基本总线周期为多少?若主频为l5MHz呢?7.在最小模式总线写周期的T1、T2、T3、T4状态,8086CPU分别执行什么动作?思考题1.在8086系统的最大模式下为什么一定要用总线控制器?试述总线控制器8288的主要功能,并说明它有哪些输入和输出信号?试述8086系统中时钟发生器8284A的主要作用以及可提供的几种时钟信号。作业:一、问答题:1、8088微处理器的逻辑地址是由哪几部分组成的?怎样将逻辑地址转换为物理地址?2、如何设置用户堆栈,在压栈和退栈操作时,堆栈指针SP的内容如何变化?3、如果一个程序在执行前(CS)=0A7F0H,(IP)=2B40H,该程序的起始地址是多少?4、如果一个堆栈是从地址1250:0100开始,(SP)=0052H,试回答以下问题:(1)SS段的段地址是多少?(2)栈顶的物理地址是多少?(3)栈底的物理地址是多少?存入字数据后,SP的内容是什么?5、有两个16位字1234H和5678H分别存放在02000H为首地址的存储单元中,试用图表示存储数据的情况。二、填空题1、8088CPU内部结构按功能分为两部分,即和。一、8086/8088CPU的结构1.8086/8088CPU的内部结构8086/8088CPU的内部是由两个独立的工作部件构成,分别是总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。图中虚线右半部分是BIU,左半部分是EU。两者并行操作,提高了CPU的运行效率。1)指令执行部件指令执行部件EU主要由算术逻辑运算单元ALU、标志寄存器FR、通用寄存器组和EU控制器等四个部件组成。其主要功能是执行命令。一般情况下指令顺序执行,EU可不断地从BIU指令队列缓冲器中取得执行的指令,连续执行指令,而省去了访问存储器取指令所需的时间。如果指令执行过程中需要访问存储器存取数据时,只需将要访问的地址送给BIU,等待操作数到来后再继续执行。遇到转移类指令时则将指令队列中的后续指令作废,等待BIU重新从存储器中取出新的指令代码进入指令队列缓冲器后,EU才能继续执行指令。这种情况下,EU和BIU的并行操作回受到一定的影响,但只要转移类指令出现的频率不是很高,两者的并行操作仍然能取得较好的效果。EU中的算术逻辑运算部件ALU可完成16位或8位二进制数的运算,运算结果一方面通过内部总线送到通用寄存器组或BIU的内部寄存器中以等待写到存储器;另一方面影响状态标志寄存器FR的状态标志位。16位暂存器用于暂时存放参加运算的操作数。EU控制器则负责从BIU的指令队列缓冲器中取指令、分析指令(即对指令译码),然后根据译码结果向EU内部各部件发出控制命令以完成指令的功能。2)总线接口部件BIU总线接口部件BIU主要有地址加法器、专用寄存器组、指令队列缓冲器以及总线控制电路等四个部件组成。其主要功能是负责完成CPU与存储器或I/O设备之间的数据传送。BIU中地址加法器将来自于段寄存器的16位地址段首地址左移4位后与来自于IP寄存器或EU提供的16位偏移地址相加(通常将“段首地址:偏移地址”称为逻辑地址),形成一个20位的实际地址(又称为物理地址),以对1MB的存储空间进行寻址。具体讲:当CPU执行指令时,BIU根据指令的寻址方式通过地址加法器形成指令在存储器中的物理地址,然后访问该物理地址所对应的存储单元,从中取出指令代码送到指令队列缓冲器中等待执行。指令队列一共6个字节(8088的指令队列为4个字节),一旦指令队列中空出2个(8086中)或一个(8088中)字节,BIU将自动进入读指令操作以填满指令队列;遇到转移类指令时,BIU将指令队列中的已有指令作废,重新从新的目标地址中取指令送到指令队列中;当EU需要读写数据时,BIU将根据EU送来的操作数地址形成操作数的物理地址,从中读取操作数或者将指令的执行结果传送到该物理地址所指定的内存单元或外设端口中。BIU的总线控制电路将CPU的内部总线与外部总线相连,是CPU与外部交换数据的通路。对于8086而言,BIU的总线控制电路包括16条数据总线、20条地址总线和若干条控制总线;而8088的总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与通用寄存器组之间的数据总线宽度也是8位,而EU内部总线仍是16位,这也是将8088称为准16位的微处理器的原因。3)8086/8088CPU寄存器阵列(寄存器组)8086/8088CPU中有14个16位的寄存器,按用途分为四类:①通用寄存器:8个,分为两组:数据寄存器:累加器AX、基址寄存器BX、计数寄存器CX、数据寄存器DX,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数,AX、BX、CX、DX分别可拆成AH、AL、BH、BL、CH、CL、DH、DL,其中AH、BH、CH、DH为高八位,AL、BL、CL、DL为低八位;指针和变址寄存器:堆栈指针SP、基址指针BP、源变址寄存器SI、目的变址寄存器DI,可用来存放数据和地址,但只能按16位进行存取操作。通用寄存器的特定用法见表2.1。②段寄存器:4个代码段寄存器CS:用于存放当前代码段的段地址;数据段寄存器DS:用于存放当前数据段的段地址;附加段寄存器ES:用于存放当前附加段的段地址;堆栈段寄存器SS:用于存放当前堆栈段的段地址。③专用寄存器:两个标志寄存器FR:仅定义了9位,其中6位用作状态标志,3位用作控制标志。a.状态标志位用来反映EU执行算术或逻辑运算的结果特征,6个状态位如下:进位标志CF:当加法运算有进位,减法运算有借位时,CF=1,否则CF=0;辅助进位标志AF:在字节操作时,低4位向高4位有进位(加法)或有借位(减法);在字操作时,低字节向高字节有进位(加法)或有借位(减法)时,则AF=1,否则AF=0。奇偶校验标志PF:当运算结果低8位“1”的个数为偶数时,PF=1,否则PF=0;零标志ZF:当运算结果位0时,ZF=1,否则ZF=0;溢出标志OF:在有符号数的算术运算时,当运算结果有溢出时,OF=1,否则OF=0;符号标志SF:在有符号数的算术运算时,当运算结果为负时,SF=1,否则SF=0;b.控制标志位用来控制CPU的操作,3个标志位如下:方向标志DF:当DF=0时,在串操作指令中,进行自动增址操作;当DF=1时,在串操作指令中,进行自动减址操作;中断允许标志IF:当IF=0时,禁止CPU响应可屏蔽中断;当IF=1时,允许CPU响应可屏蔽中断;单步陷阱标志TF:当IF=1时,表示CPU进入单步工作方式;当IF=0时,表示CPU正常执行程序。8086/8088CPU寄存器结构见图2.1。指令指针IP:用来存放要取的下一条指令在当前代码段中的偏移地址,程序不能直接访问IP,在程序运行过程中,BIU可修改IP中内容。二、8086/8088CPU芯片的引脚及其功能8086/8088CPU具有40条引脚,双列直插式封装,采用分时复用地址数据总线,从而使8086/8088CPU用40条引脚实现20位地址、16位数据、控制信号及状态信号的传输。8086/8088CPU芯片可以在两种模式下工作,即最大模式和最小模式。最大模式:指系统中通常含有两个或多个微处理器(即多微处理器系统),其中一个主处理器就是8086/8088CPU,另外的处理器可以是协处理器I/O处理器。最小模式:在系统中只有8086/8088一个微处理器。1.两种模式公用的引脚的定义AD0~AD15(Address/DataBus):分时复用的地址数据线。双向。在了解分时复用的概念之前必须先了解总线周期概念:总线周期:CPU对存储单元或I/O端口每读/写一次数据(一个字节或一个字)所需的时间称为一个总线周期。通常情况下,一个总线周期分为4个时钟周期,即T1、T2、T3、T4。下面讲解AD15~AD0的具体分时复用的问题:(8088只有AD7~AD0)在T1期间作地址线A15~A0用,此时是输出的(是存储单元的低十六位地址或I/O端口的十六位地址);在T2~T4期间作数据线D15~D0用,此时是双向的。A19/S6~A16/S3:分时复用,输出引脚。在T1期间,作地址线A19~A16用,对存储单元进行读写时,高四位地址线由A19~A16给出;在T2~T4期间作为S6~S3状态线用。状态线的特征如下:S5:用来表示中断允许状态位IF的当前设置。S6:恒为“0”,以表示CPU当前连在总线上。/S7:三态输出,高8位数据总线有效/状态复用引脚。(8088是/S7)在T1状态:作用,该引脚为0时,表示高8位数据线上的数据有效;在T2~T4状态:输出状态信号S7,未定义。GND:地线(两个),分别为引脚1和20;:读,三态输出,当=0时,表示CPU当前正在读存储器或I/O接口。READY:准备就绪,输入。当CPU要访问的存储器或I/O端口已准备好传送数据时,存储器或I/O端口置READY=1,否则置READY=0,CPU在T3状态采样READY,若READY=0,则插入Tw,然后在插入Tw状态继续采样READY,直至READY=1为止,才进入T4。:输入,测试信号。当CPU执行WAIT指令时,CPU每隔5个T对TEST进行一次测试,当测试到=1,则CPU重复执行WAIT指令,即CPU处于空闲等待状态,直到测试到=0时,等待状态结束,CPU继续执行后续指令。INTR:输入,可屏蔽中断请求,高电平有效,当外设向CPU提出中断请求时,置INTR=1,若此时IF=1,则CPU响应中断。NMI:输入,非可屏蔽中断请求,上
本文标题:第二章8086微处理器
链接地址:https://www.777doc.com/doc-2185779 .html