微机原理3-1PPT课件_第1页
微机原理3-1PPT课件_第2页
微机原理3-1PPT课件_第3页
微机原理3-1PPT课件_第4页
微机原理3-1PPT课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章微处理器及其系统,微型计算机原理及应用,主编:李继灿,清华大学出版社,2,引言,微型计算机系统,硬件系统(微机),软件系统,微处理器(CPU),主存储器,算术逻辑部件,外设,控制器,应用软件,微型计算机系统的组成,系统软件,寄存器,I/O接口,键盘、鼠标、显示器、硬盘、光盘、打印机等,3,内容提要,3.3存储器,3.2最小/最大工作方式,3.18086/8088微处理器,3.4指令系统,3.5微处理器,4,3.180X86微处理器,80X86是Intel公司生产的微处理器系列。微处理器:把运算器和控制器集成到一个芯片。微计算机系统:把微处理器芯片作为中央处理机(CPU),配上存储器、输入输出设备和系统软件构成微计算机系统。如:由80386微处理器芯片构成的微机称为386微机。由P4微处理器芯片构成的微机称为P4微机。,5,3.1.0Intel微处理器发展概述,1968年,罗伯特诺伊斯(RobertNoyce)、戈登摩尔(GordonMoore)和安迪格鲁夫(AndyGrove)在硅谷共同创立了英特尔公司。,OnlytheParanoidSurvive!-AndyGrove,了解,6,3.1.0Intel微处理器发展概述,1.第1代微处理器,Intel4004/40404位微处理器(1971)Intel8008低档8位微处理器(1972),2.第2代微处理器,Intel8080/80858位微处理器(1974)指令比较完善,有了中断与DMA汇编、BASIC、FORTRAN,Intel4004,Intel8085,了解,7,3.第3代微处理器,Intel808616位微处理器(1978)数据总线16位、地址总线20位Intel8088准16位微处理器(1979)外部数据总线8位,内部数据总线16位IBMPC(1981)、IBMPC/XTIntel80286高档16位微处理器(1982)数据总线16位,地址总线24位IBMPC/AT实地址模式、虚地址保护模式虚地址模式可寻址16MB物理地址和1GB的虚拟地址,3.1.0Intel微处理器发展概述,了解,8,3.1.0Intel微处理器发展概述,了解,9,Intel公司生产的80 x86:,10,3.1.1内部结构,1.算术逻辑部件ALU:执行算术和逻辑运算。2.控制器:负责对全机的控制。3.寄存器:处理器中临时存储数据的基本逻辑部件。,CPU的任务:执行存放在存储器中的指令序列,CPU的组成:运算器+控制器+高速缓存(386开始),CPU功能:取指令-分析指令-执行指令,11,中央处理机CPU的物理组成,8086/8088由两部分组成总线接口单元BIU功能:取指令、取操作数、保存结果执行单元EU功能:执行指令,总线接口单元,地址总线,数据总线,系统总线,主存储器,控制总线,I/O接口,I/O接口,I/O设备,I/O设备,执行单元,CPU,12,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行部分控制电路,123456,ALU,标志寄存器,AHAL,BHBL,CHCL,DHDL,BP,SI,DI,SP,地址加法器,指令队列缓冲器,执行部件(EU),总线接口部件(BIU),16位,20位,16位,Intel8086处理器的内部结构框图,16位内部数据总线,20位地址线,8位,DB,AB,13,(一)总线接口单元BIU总线接口单元BIU的功能是负责完成CPU与存储器或IO设备之间的数据传送。其具体任务是:BIU要从内存取指令送到指令队列缓冲器;CPU执行指令时,总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。BIU内有4个16位段地址寄存器CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器),16位指令指针IP,6字节指令队列缓冲器,20位地址加法器和总线控制电路。,14,1.指令队列缓冲器:8086的指令队列为6个字节,而8088的指令队列为4个字节。在执行指令的同时,从内存中取下面1条或几条指令,取来的指令依次放在指令队列中。“先进先出”的原则:(1)取指时当指令队列缓冲器中存满1条指令后,EU执行。(2)指令队列缓冲器中只要空出2个(对8086)或空出1个(对8088)指令字节时,BIU自动执行取指操作,直到填满。,15,(3)在EU执行指令的过程中,指令需要对存储器或IO设备存取数据时,BIU将在执行完现行取指的存储器周期后的下一个存储器周期,对指定的内存单元或IO设备进行存取操作,交换的数据经BIU由EU进行处理。(4)当EU执行完转移、调用和返回指令时,则要清除指令队列缓冲器,并要求BIU从新的地址重新开始取指令,新取的第1条指令将直接经指令队列送到EU去执行,随后取来的指令将填入指令队列缓冲器。,16,2.地址加法器和段寄存器:8086有20根地址线,内部寄存器有16位,采用了16位的段寄存器与16位的偏移地址即“段加偏移”的技术。利用各段寄存器分别来存放确定各段的起始地址的16位段地址信息,而由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址(又称为逻辑地址或简称为偏移量),然后,将它与左移4位后的段寄存器的内容同时送到地址加法器进行相加,最后形成一个20位的实际地址(又称为物理地址),以对存储单元寻址。,17,3.16位指令指针IP(InstructionPointer)其功能与8位CPU中的PC类似。正常运行时,IP中含有BIU要取的下1条指令(字节)的偏移地址。IP在程序运行中能自动加1修正,使之指向要执行的下1条指令(字节)。有些指令能使IP值改变或使IP值压进堆栈,或由堆栈弹出恢复原值。,18,执行单元EU并不与系统的总线控制电路直接相连,这使得它能与总线接口单元之间保持既相互联系又相互独立的关系。功能只是负责执行指令;执行的指令从BIU的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由EU向BIU发出请求,再由BIU经总线控制电路对存储器或外设存取。EU由下列部分组成。,(二)执行单元EU,19,1.16位算术逻辑单元(ALU):它可以用于进行算术、逻辑运算,也可以按指令的寻址方式计算出寻址单元的16位偏移量。2.16位标志寄存器F:它用来反映CPU运算的状态特征或存放控制标志。3.数据暂存寄存器:它协助ALU完成运算,暂存参加运算的数据。4.通用寄存器组:它包括4个16位数据寄存器AX、BX、CX、DX和4个16位指针与变址寄存器SP、BP与SI、DI。,20,5.EU控制电路:它是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。EU中所有的寄存器和数据通道(除队列总线为8位外)都是16位的宽度,可实现数据的快速传送。8088CPU内部结构与8086的基本相似,只是8088BIU中指令队列长度为4个字节;8088BIU通过总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器组之间的数据总线宽度也是8位。,21,3.1.280X86的寄存器结构(重点),可见寄存器应用程序中由指令进行访问的寄存器。通用寄存器:8个段寄存器:4个专用寄存器:2个,22,8086/8088内部寄存器,AH,AX,AL,累加寄存器,BH,BX,BL,基址寄存器,CH,CX,CL,计数寄存器,DH,DX,DL,数据寄存器,SP,堆栈指针寄存器,BP,基址指针寄存器,SI,源变址寄存器,DI,目的变址寄存器,8个16位通用寄存器,4个16位段寄存器,CS,代码段寄存器,DS,数据段寄存器,SS,堆栈段寄存器,ES,附加段寄存器,2个16位控制寄存器,IP,指令指针寄存器,FR,标志寄存器,按照功能分类,将14个内部寄存器分为三组,数据寄存器,掌握,23,1.通用寄存器,AX(accumulator)累加器:算术运算,乘除指令中指定存放操作数,I/O指令使用AX与外设传送信息BX(base)基址寄存器:除通用外,计算存储器地址时,用作基址寄存器CX(count)计数器:除通用外,保存计数(移位、循环等指令中的计数器)DX(data)数据寄存器:除通用外,在双字长运算中,DX和AX组合保存双字长数,DX存放高16位;或存放外设端口地址特点:可作16位寄存器使用,也可拆成2个独立的8位寄存器具有良好的通用性:在程序中即可存放操作数,也可存放操作结果,(1)数据寄存器,掌握,24,数据寄存器举例,例如:在指令中指明使用ADDAX,BXMOVBL,AL例如:在指令中特定使用CLSHLAX,CL;逻辑左移(CL)位例如:在指令中隐含使用ALMULBL;无符号乘法;(AX)=(AL)(BL),25,(2)指针及变址寄存器,变址寄存器:存储器寻址时,与数据段寄存器联用,提供偏移地址;只能以字的形式访问。SI(SourceIndex)源变址寄存器DI(DestinationIndex)目的变址寄存器指针寄存器:SP(StackPoint)堆栈指针寄存器,存放堆栈段中栈顶单元的偏移量BP(BasePoint)基址指针寄存器,存放堆栈段中某个单元的全部/部分偏移量,也可存放16位操作数或结果.也可用于存放操作数,但只能作为16位R使用,掌握,26,3.1.2.2段寄存器,CS:代码段寄存器对应的段存放指令代码DS:数据段寄存器对应的段存放数据或变量SS:堆栈段寄存器对应的段存放栈操作的数据ES:附加段寄存器对应的段存放数据或变量,存储器是按段进行组织的,段寄存器就是用来存放段基值的(段起始地址的高16位)。,掌握,27,需执行的程序通常分为4个段:代码段、数据段、堆栈段、附加段,00000,代码段,FFFFFH,CS,DS,SS,ES,16位段寄存器,代码段寄存器,数据段寄存器,堆栈段寄存器,附加段寄存器,注意:段寄存器的功能不能互换!,数据段,堆栈段,段基址,段基址,段基址,段基址,附加段,28,3.1.2.3专用寄存器,8086/8088/80286:16位寄存器指令指针寄存器IP标志寄存器F80386及其后继机型(了解)32位寄存器指令指针寄存器EIP标志寄存器EFLAGES,29,30,3.1.2.3专用寄存器IP或EIP,IP(InstructionPointer)指令指针寄存器IP,指示代码段中指令的偏移地址它与代码段寄存器CS联用,确定下一条指令的物理地址物理地址=(CS)16D+(IP)计算机通过CS:IP寄存器来控制指令序列的执行流程不能对IP指针直接进行访问,CS,IP,0000,CPU,+,00000H,FFFFFH,代码段段基址,偏移量IP,01010010,00010010,正在执行的指令,下一条指令,掌握,31,3.1.2.3专用寄存器标志寄存器F,标志(Flag)用于反映指令执行结果的情况或控制指令的执行方式又称程序状态字寄存器(programstatusword,PSW)。,32,(1)条件(状态)标志记录程序运行结果的状态信息。主要包含:符号标志SF零标志ZF辅助进位AF奇偶标志PF进位标志CF溢出标志OF,(2)控制标志方向标志DF:用于串处理指令(3)系统标志中断允许标志IF:IF=1,CPU允许中断,否则关闭中断陷阱(或跟踪)标志TF:TF=1,机器进入单步工作方式;TF=0,机器处于连续工作方式,3.1.2.3标志寄存器,OFDFIFTFSFZFAFPFCF,掌握,33,例某CPU内含8位运算器,则:参加运算的数及结果均以8位表示,最高位产生的进位或借位在8位运算器中不保存,而将其保存到标志寄存器中。,掌握,34,进位标志CF(CarryFlag),记录运算时从最高有效位(字节第7位,字第15位)产生的进/借位值,例如:执行指令:ADDAL,BL3AH+7CHB6H,没有进位:CF=0AAH+7CH(1)26H,有进位:CF=1,掌握,35,溢出标志OF(OverflowFlag),算术运算中,带符号数的运算结果超出了8位或16位带符号数能表达的范围,则OF=1,否则OF=0。8位(字节)运算-128+12716位(字)运算-32768+32767即:表明补码的运算结果是否有溢出,例:执行指令:ADDAL,BL3AH+7CHB6H,产生溢出:OF=1AAH+7CH(1)26H,没有溢出:OF=0,掌握,36,溢出和进位的比较,溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,如溢出,运算结果已经不正确。,掌握,37,如何运用溢出和进位,处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。(规则1)当同号操作数相加并且结果符号与加数相反时,OF=1正+正=负负+负=正当同号操作数相减时,OF=0当异号操作数数相加时,OF=0当异号操作数相减时,可看作同号操作数相加,根据规则1判断应该利用哪个标志,则由程序员来决定。操作数是无符号数,应该关心进位标志CF;操作数是有符号数,要注意溢出标志OF。,掌握,38,例1:8位加法3AH+7CH?,CF=0OF=1,溢出和进位的比较,00111010(3AH)+01111100(7CH)10110110B6H,无符号数运算58D124D182DB6H无进位范围内结果正确,有符号数运算58D124D182DB6H=-01001001B=-73D有溢出结果不正确,39,例2:AAH+7CH=?AAH=100110017CH=01111100和=(1)00010101=26H,CF=1OF=0,溢出和进位的比较,无符号数运算170124294(126H)有进位范围外结果需要修正,有符号数运算861243826H无溢出范围内结果正确,40,若运算结果为0,则ZF=1;否则ZF=0,例:(执行指令:ADDAL,BL)3AH+7CHB6H,结果不是零:ZF=084H+7CH(1)00H,结果是零:ZF=1,注意:ZF=1表示结果=0,零标志ZF(ZeroFlag),掌握,41,符号标志SF(SignFlag),表明有符号数运算结果的正负,有符号数据用最高有效位表示数据的符号。所以,最高有效位就是符号标志的状态,3AH+7CHB6H,最高位D71:SF=184H+7CH(1)00H,最高位D70:SF=0,掌握,42,奇偶标志PF(ParityFlag),表明运算结果最低字节中1的个数的奇偶,例:3AH+7CHB6H10110110B结果中有5个1,是奇数:PF=0,即使进行16位字操作,PF标志仅反映最低8位中“1”的个数是偶或奇。,掌握,43,辅助进位标志AF,记录运算时低8位中低4位(低半字节)向高4位有无进位或借位,3AH+7CHB6H,D3有进位?,AF标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心,00111010+0111110010110110,1,掌握,44,方向标志DF(DirectionFlag),用于串操作指令中,控制地址的变化方向,当DF=1时,每次操作后变址寄存器SI和DI减小当DF=0时,每次操作后变址寄存器SI和DI增大CLD指令复位方向标志:DF0STD指令置位方向标志:DF1,掌握,45,中断允许标志IF,用于开中断或屏蔽中断,CLI指令复位中断标志:IF0STI指令置位中断标志:IF1,掌握,46,陷阱标志TF(TrapFlag),用于控制处理器进入单步操作方式,单步执行指令处理器在每条指令执行结束时,便产生一个编号为1的内部中断这种内部中断称为单步中断所以TF也称为单步标志利用单步中断可对程序进行逐条指令的调试这种逐条指令调试程序的方法就是单步调试,47,在调试程序时,DEBUG提供了测试标志位的手段,用符号表示标志位的值,每种标志位的符号如下表:,DEBUG不提供TF的符号,用于单步方式操作。,48,例题,m=00111011B,n=01001010B,完成下列运算后,SF、ZF、PF、CF、AF、OF标志位的状态。(1)m+n(2)m-n,(1)m+n00111011+0100101010000101,符号SF=零ZF=奇偶PF=进位CF=辅助进位AF=溢出OF=,1,0,0,0,1,1,(2)m-n00111011-0100101011110001,SF=ZF=PF=CF=AF=OF=,1,0,0,1,0,0,49,AHAL,BHBL,CHCL,DHDL,SP,BP,DI,SI,IP,FLAGS,CS,DS,ES,SS,FS,GS,32位,16位,32位名称,16位名称,通用名称,AX累加器,BX基址变址,CX计数,堆栈指针,DX数据,基址指针,目的变址,源变址,指令指针,标志,代码段,数据段,附加段,堆栈段,EAX,EBX,ECX,EDX,ESP,EBP,EDI,ESI,EIP,EFLAGS,注:1.8086/8088或80286CPU,图中阴影区寄存器不存在;2.FS和GS寄存器无专用名称。,小结,无专用名称,80 x86的程序可见寄存器组,50,对任何一个微处理器来说,为了从存储器中取得指令或者与之传送数据,都需要它的总线接口单元执行一个总线周期。同时,以后我们会知道,在微机系统中,当选择一个存储器或I/O设备与微处理器接口之前,也必须了解系统总线的所谓时序,而这些时序也是以总线周期为基准来描述的。因此,在这里有必要介绍一下有关总线周期的概念。通常,包括80868088CPU在内,一个最基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计量单位,它由CPU的主频决定。在一个最基本的总线周期中,习惯上将4个时钟周期分别称为4个状态,即T、T、T与T这4个状态。,3.1.3总线周期的概念,51,下面以80868088CPU为例,简要说明CPU在4个状态中的基本作用。在T状态,CPU往多路复用总线上发送地址信息,以选中所要寻址的存储单元或外设端口的地址。在T状态,CPU从总线上撤消地址,并使总线的低16位浮置成高阻状态,为传送数据做准备。总线的高4位(AA)用来输出本总线周期状态信息。这些状态信息用来表示CPU是否允许中断、当前正在使用什么段寄存器等。在T状态,多路总线的高4位继续提供状态信息,而其低16位(对8088CPU则为低8位)上将出现由CPU写出的数据或者CPU从存储器或端口读入的数据。,52,在有些情况下,由于外设或存储器的速度较慢,不能及时地配合CPU传送数据。这时,外设或存储器就会通过“READY”的信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,表示它们还来不及同CPU之间传送数据,于是,CPU会在T3之后自动插入1个或多个附加的时钟周期Tw,这个Tw就叫等待状态,它表示此时CPU在总线上的信息情况和T3状态时的信息情况一样。只有在指定的存储器或外设已经完成数据传送时,它们又通过“READY”的信号线向CPU发出一个“准备好”信号,当CPU接收到这一信号后,才会自动脱离Tw状态而进入T4状态。在T状态,总线周期结束。,53,只有当CPU和存储器或I/0接口之间传送数据时,或者它正在填充指令队列缓冲器时,CPU才执行总线周期。如果CPU在执行一个总线周期之后,并不立即执行下一个总线周期,那么,系统总线就会处于空闲状态,此时,CPU将执行空闲周期。在空闲周期中,可以包含1个或多个时钟周期。在此期间,CPU在总线的高4位上仍将驱动前一个总线周期的状态信息,而且,如果前一个总线周期为写周期,则CPU会在总线的低16位上继续驱动数据信息;如果前一个总线周期为读周期,则在空闲周期中,总线低16位会处于高阻状态。,54,3.1.48086/8088的引脚信号和功能,55,(一)地址数据总线AD15AD0,56,这是分时复用的存储器或端口的地址和数据总线。传送地址时为单向的三态输出,而传送数据时可双向三态输入输出。正是利用分时复用的方法才能使80868088用40条引脚实现20位地址、16位数据及众多的控制信号和状态信号的传输。不过在8088中,由于只能传输8位数据,所以,只有AD7AD08条地址数据线,A15A8只用来输出地址。,57,作为复用引脚,在总线周期的T1状态用来输出要寻址的存储器或IO端口地址;在T2状态浮置成高阻状态,为传输数据作准备;在T3状态,用于传输数据;T4状态结束总线周期.当CPU响应中断以及系统总线“保持响应”时,复用线都被浮置为高阻状态。,58,(二)地址状态总线A19S6A16S3,59,地址状态总线为输出、三态总线,采用分时输出,即T1状态输出地址的最高4位,T2T4状态输出状态信息。当访问存储器时,T1状态时输出的A19A16送到锁存器(8282)锁存,与AD15AD0组成20位的地址信号;而访问IO端口时,不使用这4条引线,A19A16=0。状态信息中的S6为0用来指示80868088当前与总线相连,所以,在T2T4状态,S6总等于0,以表示80868088当前连在总线上。S5表明中断允许标志位IF的当前设置。S4和S3用来指示当前正在使用哪个段寄存器,如下表所示。,60,1.高8位数据总线允许状态复用引脚,三态、输出.BHE在总线周期的T1状态时输出,S7在T2T4时输出。在8086中,当BHES7引脚上输出BHE信号时,表示总线高8位AD15AD8上的数据有效。在8088中,第34引脚不是BHES7,而是被赋予另外的信号:在最小方式时,它为SS0;在最大方式时,它恒为高电平.S7在8086中未被赋予定义。,3.控制总线,61,2.读控制信号,三态、输出。当RD=0时,表示CPU将要执行一个对存储器或IO端口的读操作。对内存单元还是对I/O端口读取数据,取决于(8086)或(8088)信号。在一个读操作的总线周期中,RD信号在T2、T3和Tw状态均为低电平,以保证CPU读有效。在执行DMA操作时,RD被浮空。,62,3.“准备好”信号线,输入。当READY=1时,表示所寻址的内存或I/O设备已准备就绪,马上就可进行一次数据传输。CPU在每个总线周期的T3状态开始对READY信号采样。当READY=0,表示存储器或I/O设备尚未准备就绪,则CPU在T3状态之后自动插入一个或几个等

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论