您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 微机原理第二章课件-8086-8088微处理器的内部结构
第二章微型计算机系统结构第一节CPU的内部逻辑结构一、CPU的组成和功能1、CPU的组成CPU主要由运算器、控制器、寄存器组和片内总线等组成2、CPU的功能(1)指令控制(2)操作控制(3)时序控制(4)执行指令(5)数据加工(运算)二、8086/8088微处理器的内部结构8086是16位的微处理器,有16位数据线和20位地址线,可寻址220个字节,即220=1MB=1048576B8088是准16位微处理器,内部为16位,外部数据线为8位。8086是本课的重点,它主要分为两个独立的功能模块,总线接口模块BIU和执行部件EU,它们可以并行工作。如图2.1所示。图2.18086CPU内部逻辑结构BIUEU1、总线接口部件BIU总线接口部件负责与存储器、输入/输出端口传送数据。总线接口部件组成:(1)专用寄存器组:段地址寄存器CS、DS、ES、SS和指令指针寄存器IP,均为16位。(2)地址加法器:8086在寻址1M字节地址空间时需用20位地址,这个地址就是由地址加法器产生的。具体的说,地址加法器将段寄存器(16位)的内容左移4位,然后与指令指针寄存器IP的内容相加得到20位的物理地址。例如:从内存取指令时,(CS)=5760H,(IP)=1234H,则物理地址为:57600H+1234H=57934H。这里,先将段寄存器CS左移4位(16进制数只需后面加一个零)。(3)6字节的指令队列:总线接口部件从内存中取来的指令放在一个缓冲区中,这个缓冲区叫指令队列。执行部件在执行指令过程中从指令队列取来指令执行。(4)输入/输出控制电路:该控制电路将8086CPU的片内总线与系统总线相连,是8086CPU与外部交换数据的必经之路。2、执行部件EU(ExecutionUnit)执行部件负责执行指令。通常,从指令队列中取得等待执行的指令。组成如下:(1)算术逻辑单元ALU:完成各种运算。(2)标志寄存器FR:用来保存ALU运算结果的一些特征信息,如运算是否进位。(3)通用寄存器组:数据寄存器AX,BX,CX,DX和寄存器BP,SP,SI及DI,均16位。(4)执行部件控制电路3、BIU和EU的管理BIU和EU可以并行工作,提高CPU效率。(1)BIU监视着指令队列。当指令队列中有2个空字节时,就自动把指令取到队列中。(2)EU执行指令时,从指令队列头部取指令,然后执行。如需访问存储器,则EU向BIU发出请求,由BIU访问存储器。(3)在执行转移、调用、返回指令时,需改变队列中的指令,要等新指令装入队列中后,EU才继续执行指令。4、寄存器结构(1)通用寄存器组8086CPU有8个16位的通用寄存器,分2组。①通用数据寄存器:AX,BX,CX,DX,用来存放数据或地址,一个16位寄存器也可以当作两个8位寄存器用,此时表示为AH,AL;BH,BL;CH,CL;DH,DL。②基地址寄存器BP,堆栈指针寄存器SP,源变址寄存器SI和目的变址寄存器DI主要存放地址,也可以存放数据。(2)段寄存器8086的寻址空间是1M字节,物理地址需要20位的地址码。但CPU中的寄存器都是16位的。为解决该问题采用了存储器分段技术。把1MB地址分段,每段64KB,其起始地址的高16位装入一个段寄存器中,称作段基地址,这四个段寄存器的名称为:CS(代码段寄存器)DS(数据段寄存器)ES(附加段寄存器)SS(堆栈段寄存器)8086设置了这4个16位段寄存器,通过这四个段寄存器,CPU可以定位4个逻辑段,分别为:当前代码段、当前数据段、当前附加段和当前堆栈段。注意,每个逻辑段在实际存储器中的位置是可以浮动的,其起始地址的高16位装在段寄存器中,称作段基地址。当程序很大,超过64KB时,则可以定义多个代码段、数据段和附加段。不同的逻辑段可以相交,甚至可以完全重叠。参见书上图2.8。(3)指令指针寄存器IP该寄存器的内容用来指明将要执行的下一条指令在代码段中的位置。总线接口部件BIU负责修改IP寄存器的值,使它始终指向将要执行的下一条指令。(4)标志寄存器FRFR主要用来标志运算结果的状态,以及控制CPU的操作。各标志位定义如图2.2所示(共有9个标志):下图是80x86微处理器的标志寄存器,从图中可知,他们是向下兼容的。标志位共有9个,6个是状态标志,用来表示运算结果的特征,包括CF、PF、AF、ZF、SF和OF;3个是控制标志,用来控制CPU的操作,包括IF、DF和TF。①状态标志:CF:进位标志,表示本次运算中最高位(第7位或第15位)有进位或有借位。PF:奇偶标志。PF=1表示本次运算中低8位有偶数个“1”;PF=0表示有奇数个“1”。AF:辅助进位标志。AF=1表示本次运算第3位向第4位有进位或有借位。在十进制运算中作为是否进行十进制调整的依据。ZF:零标志。ZF=1表示本次运算结果为零,否则ZF=0SF:符号标志。SF=0为正数;SF=1为负数。OF:溢出标志。OF=1表示本次运算结果产生溢出,否则OF=0。所谓溢出就是指运算结果超出了相应类型数据所能表示的范围。②控制标志:DF:方向标志,用来控制串操作指令的执行。DF=0则串操作指令的地址自动增量;若DF=1,则自动减量。IF:中断标志,用来控制对可屏蔽中断的响应。若IF=1则允许CPU响应可屏蔽中断;IF=0,则CPU不能响应可屏蔽中断。TF:单步标志。若TF=1,则CPU进入单步工作方式,即CPU每执行一条指令就自动产生一次内部中断;TF=0则CPU正常执行。8086以上的CPU其寄存器阵列如下图所示,阴影部分是80386以上的32位微处理器的寄存器。5、8088与8086的区别8088的指令队列只有4个字节,若出现1个空字节,BIU就会自动取指令补充。8088BIU与外部交换数据是8位的,I/O控制电路与专用寄存器之间的数据总线宽度也是8位的。8088与8086有几个引脚的意义有不同,参见下一节。第二节CPU的外部结构8086/8088CPU芯片都是40条引脚的双列直插式封装。部分引脚采用了分时复用方式,即同一条引脚在不同的时刻具有不同的用途。如图2.3所示。8086/8088CPU可有两种工作模式,即最大模式和最小模式。不同模式下个别引脚的功能是不同的。GND140VCCAD14239AD15AD13338A16/S3AD12437A17/S4AD11536A18/S5AD10635A19/S6AD9734BHE/S7AD8833MN/MXAD79808632RDAD610CPU31HOLD(RQ/GT0)AD51130HLDA(RQ/GT1)AD41229WR(LOCK)AD31328M/IO(S2)AD21427DT/R(S1)AD11526DEN(S0)AD01625ALE(QS0)NMI1724INTA(QS1)INTR1823TESTCLK1922READYGND2021RESETGND140VCCA14239A15A13338A16/S3A12437A17/S4A11536A18/S5A10635A19/S6A9734SS0(HIGH)A8833MN/MXAD79808832RDAD610CPU31HOLD(RQ/GT0)AD51130HLDA(RQ/GT1)AD41229WR(LOCK)AD31328IO/M(S2)AD21427DT/R(S1)AD11526DEN(S0)AD01625ALE(QS0)NMI1724INTA(QS1)INTR1823TESTCLK1922READYGND2021RESET图2.38086/8088CPU的外型与引脚一、8086CPU引脚1.AD15-AD0:分时复用的地址/数据总线2.A19/S6-A16/S3:分时复用的地址/状态线S4S3段寄存器00ES01SS10CS(I/O,INT)11DSS5用来表示中断标志状态线,当IF为1时,S5=1。S6保持恒为0。3.:总线高位有效信号4.:读信号5.:写信号6.:存储器或I/O端口访问信号7/SBHERDWRIOM/BHEAD0总线使用情况0016位数据总线上进行字传送01高8位数据总线上进行字节传送10低8位数据总线上进行字节传送11无效7.Ready:准备就绪信号8.INTR:中断请求信号9.:中断响应信号10.NMI:非屏蔽中断请求信号11.:测试信号12.RESET:复位信号13.ALE:地址锁存允许信号14.:数据发送/接收控制信号15.:数据允许信号16.HOLD:总线请求信号TESTRDT/DENINTA17.HLDA:总线请求响应信号18.:工作模式选择信号19.CLK:主时钟信号20.Vcc:CPU+5V电源21.GND:电源地最大模式系统时24-31引脚重定义如下:22.:总线周期状态信号23.:封锁信号24.:请求/同意信号25.QS1,QS0:指令队列状态信号012,,SSSLock10/,/GTRQGTRQMXMN/二、8088CPU引脚功能8088上有8条数据总线,所以只有AD7-AD0为地址/数据复用,A15-A8只是地址线。第28脚8086中,在8088中为电平意义相反第34脚8086中为,在8088中为IOM/BHE0SSIOM/第三节存储器结构8086CPU有20根地址线,它的直接寻址空间为220=1M字节,这1M字节空间按照00000H-FFFFFH来编址。一、8086系统中的存储器结构1、存储器的组织(1)8086系统中,1M字节分为2个512K的存储体,一个存储体中的地址都是偶数地址,叫偶体,另一个都是奇数地址,叫做奇体。如图2.4所示。图2.4存储体与总线的连接(2)访问一个存储体,只需19位地址,剩下一位用来区分访问那个存储体。A0=0为偶存储体,A0=1为奇存储体。(3)信号:由该信号和A0控制读写那个存储体。BHEBHEA0操作(读或写)00同时访问两个存储体,读写一个字01只访问奇地址存储体,读写高字节10只访问偶地址存储体,读写低字节11无操作(3)读字节和字,如图2.5所示图2.5读存储器中的字节和字操作示意图2、存储器分段图2.6为逻辑段在物理存储器中的位置。每个段的容量最大为64KB;段之间可以重叠。每个逻辑段的首地址的低4位为0,即是16的整数倍,将段首地址的高16位放在段寄存器中,称为“段基址”。而段内的相对地址也是16位,称为“偏移地址”。将1MB物理存储器空间也可用另一种分法。将20位物理地址分为两部分,如上图下面所示。用4位段号寄存器表示段号;16位寄存器表示段内地址。这样的缺点是要有一个4位寄存器,二是段的大小固定为64KB。3、逻辑地址和物理地址物理地址20位是唯一可识别的字节单元地址,即存储器的实际地址。逻辑地址是程序设计时,根据需要产生的一种地址,它不是真正的单元地址。逻辑地址由段基址和偏移地址两部分组成,它们都是16位无符号数。图2.7段基址和偏移地址物理地址可以由逻辑地址经过运算得到例如:段基址1123H1124H偏移地址0013H0003H物理地址11243H11243H可以看出,不同的段基址和偏移地址可以得到相同的物理地址。物理地址=段基址×10H+偏移地址如图2.9所示。物理地址的形成如图2.9所示。逻辑地址的来源如表2-5中所示的约定。4、存储单元的地址和内容存储器通常以字节编址,一个字节单元有一个唯一的存储器地址,称为物理地址。地址通常以16进制数表示。如36位地址总线,其地址范围为00000000~FFFFFFFFH。一个存储单元中存放的信息称为该单元的内容,图2.33是存储数据信息的数据类型。可见一个字要占两个地址,其低位字节存入低地址,高位字节存入高地址。同理,双字是4个字节,要占四个存储器地址,也是低位字节存入低地址,高位字节存入高地址。5、动态浮动码8086的段存储器结构,使编写与具体位置无关的或称动态浮动的程序成为可能。动态浮动使多道程序设计和多任务系统能特别有效地使用存储器。6、存储器堆栈存储器堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来定位,其中SS存放现行堆栈的基地址,SP指向堆栈
本文标题:微机原理第二章课件-8086-8088微处理器的内部结构
链接地址:https://www.777doc.com/doc-5717621 .html