微机原理课件 微机原理3.ppt

微机原理课件 微机原理3.ppt

ID:51593285

大小:827.50 KB

页数:70页

时间:2020-03-25

上传者:asd881529
微机原理课件 微机原理3.ppt_第1页
微机原理课件 微机原理3.ppt_第2页
微机原理课件 微机原理3.ppt_第3页
微机原理课件 微机原理3.ppt_第4页
微机原理课件 微机原理3.ppt_第5页
资源描述:

《微机原理课件 微机原理3.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

基本概念(总线、堆栈等)Intel8086微处理器的结构Intel8088微处理器的结构本章内容 了解三总线及堆栈的工作原理。掌握Intel8086系统的构成和工作原理重点掌握Intel8086微处理器的结构。学习目的 3.18086微处理器的结构一、总线1.总线的由来在计算机中,CPU与其他功能部件之间存在大量的信息交流,其间就需要使用通信线路连接起来,通信线的设置和连接可采用两种方式。 (1)专线式:将各个功能部件分别设置与其它部件通信的线路。优点:传送速率高,它只受传送线本身的限制,且控制简单。缺点:机器所需要的信息传送线数量大,增加了复杂性,不便于实现机器的模块和积木化。 (2)总线式:在多个功能部件之间设置公共的通信线,即总线。图中当A和A'门打开时,信息由A传至A';A和C'门打开时,信息便从A传至C'。ABCA'B'C'总线示意图总线上能同时传送二进制信息的位数称为总线宽度。见下图。 由于采用了分时传送的总线结构从而大大减少了机器中信息传送线的数目。a.分时传送:多个部件并联在总线上,某一时刻,只允许一路信息在总线上传送。b.控制复杂:总线的发送端及接收端均有三态门电路。打开三态门,信息经总线传送到目的端。若不传送信息,则使三态门处于高阻状态,相当于此部件在逻辑上与总线脱离联系。c.系统结构简单,便于扩展。特点: 2.总线的分类总线按信息传送的方向可分为单向总线和双向总线。单向总线只能向一个方向发送信息。双向总线则可在两个方向传送。总线按所传信息内容类别,通常分为:数据总线、地址总线和控制总线。 (1)数据总线(DataBus)是微处理器与存储器和I/O电路间数据交换的通道,可双向传送。数据总线的宽度一般与微处器处理数据的字长相同,三态。 (2)地址总线(AddressBus)是微处理器输出地址用的总线,它将地址送到存储器或I/O电路,用来确定存储器中信息存放的地址或I/O电路的地址,AB一般为单向、三态。(3)控制总线(ControlBus)是用来传送控制信号,使各功能部件动作同步。 二、Intel8086微处理器的结构8086是Intel系列的16bit微处理器,属第三代。8086有16bit数据总线和20bit地址线,可寻址1M空间。8086采用单一+5V电源和单相时钟,频率为5MHZ。 20位AHALBHBLCHCLDHDLSPBPDISIALU运算寄存器标志执行部件控制电路16位CSDSSSESIP内部暂存器8位123456执行部件(EU)输入/输出控制电路16位外部总线指令队列缓冲器总线接口部件(BIU)通用寄存器地址加法器1.总体功能结构8086CPU的结构框图 8086从功能结构来讲,分为两大部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。(1)BIU部件由段寄存器、指令指针、地址加法器、指令队列缓冲器和控制电路等部分组成。 在执行指令时,如要取操作数,则也由BIU从内存或I/O接口指定区域取出,送给EU部件去执行。BIU负责与存储器、I/O接口电路传送信息。BIU负责从指定内存单元取出指令,送到指令队列缓冲器中排队。指令队列缓冲器是一个6个字节的RAM存储器(8088为4个字节),队列中最多可同时存放6个字节的指令,取来的指令是按字节顺序存放的。当队列中有两个以上的指令字节空的时候,BIU会自动地执行总线操作,继续取指令。 (2)EU部件由ALU、通用寄存器、标志寄存器和控制电路组成,负责指令的执行。ALU、寄存器和数据传输通路均是16bit的。 若执行的是一条转移指令,则存放在指令队列缓冲器中的指令就没有用了,应到新的地址单元去取指。BIU新取出的第一条指令将直接送到EU中去执行,随后重新填充指令队列缓冲器。EU从BIU中的指令队列缓冲器中取得指令和数据。当指令要求将数据写到存储器和I/O电路,或需从存储器和I/O电路中读取数据时,EU向BIU发出请求,BIU自动完成这些操作。 (3)8086与传统微处理器指令执行过程比较取指3执行3取指4执行2取指2执行1取指1传统微处理器的执行方式传统微处理器取指与执行串行进行,CPU的工作效率低。 取数据取指5取指4取指3取指2取指1BIU执行4执行3执行2执行1等待EU8086的指令执行方式8086CPU取指与执行并行进行,大大减少了等待取指令所需时间,提高了CPU的工作效率。 2.寄存器结构8086CPU内部寄存器DLDHCLCHBLBHALAH通用寄存器AXBXCXDXSPBPSIDI数据寄存器CSDSSSESIPFLAG变址寄存器指针寄存器堆栈指针基址指针源变址目的变址指令指针状态标志代码段数据段堆栈段附加段段寄存器控制寄存器 (1)通用寄存器8个16bit通用寄存器。SP—堆栈指针,存放堆栈栈顶的现行地址,与SS堆栈段寄存器一起方可确定堆栈的实际地址。BP—基址指针SI—源变址寄存器AX,BX,CX,DX4个16bit的通用数据寄存器,它们的高8bitAH,BH,CH,DH与低8bitAL,BL,CL,DL又可分别看成8个8bit的寄存器。DI—目的变址寄存器 (2)控制寄存器IP(InstructionPointer)指令指针与PC类似,但有区别:a.PC是指向下一条即将要执行的指令,而IP一般是指向下一次要取出的指令。b.在8086中IP要与CS代码段寄存器的内容一起,才能得到指令的实际地址。 TFSFZFAFPFOFDFIFCF1514131211109876543210标志寄存器格式a.6个状态标志位,即CF、PF、AF、ZF、SF和OF。进位标志CF(CarryFlag):FLAG(标志寄存器)为16bit,其中9位有定义当结果的最高位(字节-D7,字-D15)产生进位(加法运算)或借位(减法运算)时,CF=1;否则,CF=0,移位和循环指令也影响CF。 奇偶标志位PF(ParityFlag):若结果中的低8位含有“1”的个数为偶数,则PF=1;否则,PF=0。辅助进位标志AF(AuxitiaryCarryFlag):在低半字节向高半字节有进位或借位时AF=1;否则,AF=0。零标志ZF(ZeroFlag):当运算结果为0时ZF=1;否则,ZF=0。符号标志SF(SignFlag):SF等于最高位,对于带符号数,最高位为符号位,SF=1运算结果为负,SF=0为正。 溢出标志OF(OverflowFlag):带符号数运算结果超出其表达范围时(字节数:-128~+127,字类型数:-32768~+32767),OF=1;否则,OF=0。用表达式给出(字节运算)(字运算)例:①2345H+3219H②6400H+7A3CHCF=0PF=0AF=0ZF=0SF=0OF=0CF=0PF=1AF=0ZF=0SF=1OF=1 b.3个控制标志位追踪标志TF(TraceFlag):TF=1,处理器进入单步方式,以便调试,CPU每执行一条指令自动产生一个内部中断以利于检查指令的执行情况;TF=0为连续工作方式。中断允许标志IF(Interrupt-enableFlag):IF=1,允许CPU响应外部的可屏蔽中断请求;IF=0则禁止响应。IF对外部非屏蔽中断及内部中断不起作用。 方向标志DF(DirectionFlag):在串操作指令中,DF=0时,变址指针自动增量,DF=1时,则自动减量。 (3)段寄存器CS—代码段寄存器,用于定义代码段基地址,该段用于存放指令代码。DS—数据段寄存器,用于定义数据段基地址,该段用于存放数据。有4个16bit的段寄存器 SS—堆栈段寄存器,用于定义堆栈段基地址,该段作堆栈区使用。ES—附加数据段,用于定义附加段基地址,与DS类似。上述4个段在8086寻址的1MB空间内,其位置不受限制,可连续排列、分隔排列、部分重叠甚致全部重叠。 三、8086存储器管理8086采用分段管理的办法实现对1MB存储空间的管理(物理地址00000H~FFFFFH),16bit的段寄存器存放了该段的段首址,那么它是怎样产生20bit的物理地址的呢?我们通常采用在地址编号能被16整除的地方开始分段,此时地址的低4bit均为0,这时段寄存器只用来存放高16bit即可,以下有几个概念。 段内偏移量EA(EffectiveAddress):是指某存储单元离开该段段首址的字节数。逻辑地址(LogicalAddress):是一对地址,包含段寄存器的内容和段内偏移量,如某条指令的逻辑地址可表达为:CS:IP。物理地址PA(PhysicalAddress):是指某个存储单元实际的20bit的地址,又称绝对地址。 由上面的定义可知:物理地址PA=对应段寄存器×10H十段内偏移量EA。物理地址的形成如下图所示。物理地址的形成段寄存器值000020位物理地址190150150偏移地址加法器16位4位 例如:若CS=FFFFH,IP=0000H,则指令所在存储单元的物理地址为:PA=(CS)×10H+IP=FFFF0H当取指令时,自动选择的段寄存器是CS,再加上IP所决定的16位偏移量,得到要取出指令具体的物理地址:当涉及到取一个堆栈操作数时,自动选择的段寄存器是SS,再加上SP所决定的16位偏移量,得到堆栈操作所需要的20位物理地址。 当涉及到取一个操作数时,自动选择DS数据段寄存器或ES附加段寄存器,再加上16位偏移量,得到操作数的20位物理地址。16位偏移量取决于指令的寻址方式。如下图所示:IPCSSI,DI或BXDSSP或BPSS代码段数据段堆栈段 3.28086的引脚信号及工作模式最小模式:即由8086组成的单处理器系统,所有的总线控制信号由8086直接产生,系统中的总线控制逻辑电路被减到最少。最大模式:即由8086组成的中等规模或者大型的系统。包含两个或多个微处理器,8086为主处理器,其它的为协处理器。一、8086的两种工作模式 8086采用双列直插式封装,有40个引脚(如右图所示),但总线信号数量却大于40,故8086采用了分时复用技术,部分引脚传送两种总线信号。二、8086引脚图12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU8086的引脚信号注:括号内为该引脚在最大模式下的名称 1.最小模式下引脚信号及功能:(1)地址/数据总线AD15~AD0(双向、三态)在一个总线周期的第一个时钟周期用于传送低16bit地址信息,并用地址锁存器锁存以免丢失,其它时钟周期可用于传送数据信息,分时传送。当8086执行中断响应周期、保持响应周期时,这些引脚处于高阻状态。 (2)地址/状态信号线A19/S6~A16/S3(输出、三态)在总线周期的第一个时钟周期(T1)用于输出地址信号的最高4bit并锁存。其它时钟周期中用来输出状态信号S6~S3,其中:S6——低电平,表示8086当前与总线相连。S5——表示标志寄存器中“中断允许位”的状态(IF)。S4,S3的组合指出了分段情况。如下表所示。 S4和S3的组合提供的分段信息表S4S3意义00110101当前正在使用ES附加段当前正在使用SS堆栈段当前正在使用CS或者未使用任何段寄存器当前正在使用DS数据段当CPU处于“保持响应”状态时,A19/S6~A16/S3置为高阻状态。若执行I/O指令,则由于8086只访问64K个端口,在T1周期这4个引脚为低电平。 (3)BHE/S7高8bit数据总线允许/状态线(输出,三态)在T1状态,8086在BHE/S7引脚输出BHE信号,表示高8bit数据总线D15~D8上的数据有效,与地址线A0一起产生存储器的选择逻辑信号。在其它时钟周期,输出为状态信号S7。但8086芯片,S7未定义。 下面介绍引脚中的控制信号。(4)MN/MX最小/最大模式控制信息低电平—8086处于最大模式。高电平—8086处于最小模式。(5)RD读信号(输出,三态)低电平有效。表示将对内存或I/O端口读操作。 (6)M/IO,存储器/输入输出控制信息(输出,三态)区分CPU进行的是存储器还是I/O访问,见下表。RDM/IO操作1000读存储器数据读I/O端口数据RD与M/IO的组合及对应的操作表 (7)WR写信号(输出,三态)1000CPU对存储器进行写操作CPU对I/O端口进行写操作WR与M/IO的组合及对应的操作表操作WRM/IO低电平有效。WR与M/IO的组合对应的操作如下表所示。 (8)ALE地址锁存允许信号(输出)高电平有效,此信号在T1状态有效,为地址码锁存的选通信号,送地址锁存器。(9)READY准备就绪信号(输入)高电平有效,是从所寻址的存储器或I/O电路来的响应信号,用于解决CPU与慢速存储器或I/O电路的同步问题。CPU在T3周期开始采样READY线,若为低电平,则T3之后插入TW等待周期直到READY为高电平,才进入T4完成数据传送。 (10)INTR可屏蔽中断请求信号(输入)高电平有效,8086在每一个指令周期的最后一个T状态采样这条线,若为有效,且IF=1,则8086在执行完当前指令即响应中断。(11)INTA中断响应信号(输出,三态)低电平有效,CPU响应外部可屏蔽中断请求以后,便发出中断响应信号,作为对中断请求的回答。此信号在每一个中断响应周期的T2、T3和TW周期均有效,作为中断矢量的读选通信号。 (12)NMI非屏蔽中断请求信号(输入)边沿触发,该线上的中断请求信号不能用软件屏蔽,电平由低到高,便在当前指令结束后引起中断。 (13)RESET系统复位信号(输入)高电平有效,8086要求此信号起码维持4个时钟周期;若初次加电复位,持续时间不小于50s。RESET为高电平时,8086立即结束现行操作,进入内部复位状态,CPU各内部寄存器被设置为初值:CS=FFFFH,Flag、IP、DS、ES、SS及其它寄存器均初始化为0000H。 (14)DT/R数据收发控制信号(输出、三态)为增强数据总线的驱动能力,8086可外接驱动器8286,DT/R即为8086输出给数据收发器8286的控制信号。DT/R—高电平,8086输出的数据经8286送到数据总线;DT/R—低电平,收发器8286则把数据总线上的数据传送到8086。系统工作在DMA方式时,DT/R为高阻状态。 高电平有效。系统中其他的总线主设备要获得对总线的控制权时,向8086发出高电平的HOLD信号,8086在每个时钟周期的上升沿对HOLD引脚信号进行检测,若为高电平,则在当前总线周期结束时,予以响应。(16)HOLD保持请求信号(输入)(15)DEN数据允许信号(输出,三态)低电平有效,也是8086控制外接的数据收发器,低电平时开启收发器,传送数据有效;高电平时,则禁止传送。 (17)HLDA保持响应信号(输出)高电平有效。当CPU响应保持请求HOLD时,便发出HLDA高电平的应答信号,从而将总线控制权让给发出保持请求的设备,直到该设备又将HOLD信号变为低电平,CPU才收回总线控制权,将HLDA信号置为低电平。 低电平有效,与WAIT等待指令结合使用。当CPU执行WAIT指令时,CPU处于空转状态进行等待,直到检测到TEST信号低有效时结束,CPU继续往下执行指令。(18)TEST测试信号(输入)(19)CLK系统时钟输入信号时钟信号为CPU和总线控制逻辑电路提供定时基准。常用INTEL8284A时钟发生器提供CLK信号。 工作在最小模式下8086的典型配置如右图所示。8086地址锁存器STB(8286×2)OE(选用)数据总线地址总线(8282×3)READYRESETMN/MXALEBHEA19~A16AD15~AD0DENDT/RM/IOWRRDHOLDHLDAINTRINTA(8284A)X1X2CLKREADYRESET+5VBHEA19~A0D15~D0 2.最大模式下引脚信号及功能若将8086的MN/MX引脚接地便工作在最大模式。此时仅24—31引脚信号与最小模式不同,如下表所示。引脚编号最小模式最大模式2425262728293031QS1QS0S0S1S2LOCKRQ/GT1RQ/GT0INTAALEDENDT/RM/IOWRHLDAHOLD两种模式下8086的24~31引脚信号表 (1)QS1和QS0指令队列状态信号(输出)QS1和QS0编码与队列状态表QS1QS0队列状态00110101空操作取走指令的第一个字节队列空从队列里取出的字节是指令的后续字节两信号编码和对应的队列状态如下表所示。 这三个状态信号组成的编码表示了当前总线周期是何种操作周期,如下表所示。2,1和0编码与总线周期表发中断响应信号读I/O端口写I/O端口暂停取指令读存储器写存储器无源状态010101010000111100110011S总线周期2S10S(2)S2,S1和S0总线周期状态信号(输出,三态) (3)LOCK总线封锁信号(输出,三态)低电平有效。此信号有效时,系统中其他总线主部件不能占有总线。此信号由前缀指令LOCK使其有效,并保持到LOCK前缀后的一条指令执行完毕。另外8086在两个中断响应周期之间,LOCK信号也自动变为有效电平,以防其它部件占有总线。 下图给出了8086在最大模式下的典型配置。(4)RQ/GT1和RQ/GT0总线请求/允许信号(双向)供CPU以外的两个处理器用以发出使用总线的请求信号和接收CPU对总线请求信号的回答信号,请求与允许信号在同一引脚上传输,但方向相反。其中RQ/GT0优先级较高。 8086在最大模式下的典型配置8086CPU时钟发生器(8284A)8288CLKDENALEMN/MXSTBOEOETIORCIOWC数据总线MRDCMWTCBHE8282×38286×2CLKREADYRESETBHES0S1S2S0S1S2DT/RA19~A0D15~D0INTAA19~A16AD15~AD01READYRESET总线控制器地址总线 由图可以看出:8086在最大与最小模式下的主要区别是增加了一个8288总线控制器。8288接受8086CPU的状态信号S2、S1和S0,经过变换和组合,由8288发出对存储器和I/O端口的读/写信号,对锁存器8282及对总线收发器8286的控制信号。 三、8086系统中的堆栈用作数据暂时存储的一组寄存器或存储单元称为堆栈。堆栈操作有两种:压入(PUSH)和弹出(POP),而SP始终指向堆栈栈顶的新位置。1.堆栈的定义堆栈中数据按“后进先出”的结构方式进行处理,即新入栈的依次堆放在原来数据之上,存放信息的最后一个单元叫做栈顶,用堆栈指针SP(StackPointer)指示。 2.堆栈编址结构的两种形式(1)向上生成该结构中,每压入一个数据,堆栈指示器SP按增量修改;每弹出一个数据,SP按减量修改。(2)向下生成该结构中,每压入一个数据,SP按减量修改;每弹出一个数据,SP按增量修改。 3.构成堆栈的两种形式一种是使用微处理器内部的一组寄存器作为堆栈。优点:访问速度快。缺点:寄存器数量有限。另一种形式是在随机存储器RAM中开辟一个区间供堆栈使用,较为普遍;若编址采用向下生成,其堆栈操作如下图所示。 堆栈操作示意图(向下生成)M-3M-2M-1MXSP(a)M-3M-2M-1MXSP(b)AM-3M-2M-1MXSP(c)ABSPASPBSPC当前栈顶地址为M,存内容X信息B进栈:SPSP-1,SP指定的地址B信息A进栈分两步操作:SPSP-1,SP指定的地址单元A 堆栈操作示意图(向下生成)MM-3M-2M-1XSP(d)ABCM-3M-2M-1MXSP(f)ABCM-3M-2M-1MXSP(e)ACBSPDSPCSPB信息C进栈信息C出栈分两步操作:指定的目的地C,SPSP+1信息B出栈:指定目的地B,SPSP+1 堆栈操作示意图(向下生成)MM-3M-2M-1XSP(g)ADCM-3M-2M-1MXSP(i)ADCM-3M-2M-1MXSP(h)ACDSPDSPA信息D进栈:SPSP-1,SP指定的地址D信息D出栈信息A出栈,栈顶地址仍为M 由上图中可以看出,出栈操作并不会从堆栈中去掉信息,也不擦除它们,只是因SP的自动修改而改变了堆栈的栈顶。堆栈主要用于中断控制,子程序调用以及数据暂时存储。 3.38088微处理器8088是Intel公司继8086之后推出的简化版。IBM公司采用8088CPU于1981年推出了IBMPC机,开创了个人计算机的新时代。 一、8088的功能结构8088的内部结构与8086基本相同,都是16位CPU,只是外部数据总线的宽度不同。8086的外部数据总线宽度为16位,而8088的外部数据总线宽度为8位,故称8088为准16位CPU。内部结构不同点:8086的BIU中有一个6字节的指令队列,而8088的BIU中只有一个4字节的指令队列。当8088指令队列有1个字节空余(8086为2个字节空余)时,BIU将自动取指到指令队列。 8088采用双列直插式封装,有40个引脚(如右图所示),电源为单一+5V,主时钟频率为4.77MHz,但总线信号数量却大于40,AD0---AD7采用了分时复用技术,部分引脚传送两种总线信号。12345678910111213141516171819204039383736353433323130292827262524232221GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SSO/(HIGH)MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)IO/M(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8088CPU8088的引脚信号注:括号内为该引脚在最大模式下的名称二、8088引脚图 因此,在最小模式系统中,8088CPU只有8位数据总线,不需要BHE信号。该引脚(第34脚)定义为SSO。SSO是一个输出状态信号,而且具有三态,在逻辑上等效于最大模式下的S0。SSO和IO/M及DT/R信号组合起来,决定了当前总线周期的操作。这三个信号的组合编码及其对应的总线操作如下表所示 中断响应读I/O端口写I/O端口暂停取指读存储器写存储器无作用010101011111000000110011IO/MIO/M、DT/R和SSO的状态编码DT/RSSO性能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭