微机原理2教材_第1页
微机原理2教材_第2页
微机原理2教材_第3页
微机原理2教材_第4页
微机原理2教材_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

第3章80X86微处理器的

体系结构本章重点:微处理器的基本结构8086/8088微处理器8086/8088的总线操作和时序80486微处理器Pentium微处理器13.1微处理器的基本结构微处理器内部基本结构都由算术逻辑单元(ALU)、寄存器阵列、控制单元和总线缓冲器组成。一.算术逻辑单元(ALU)ArithmeticLogicUnitCPU中,ALU是对二进制数据进行算术运算和逻辑运算的部件。算术运算——‘+’,‘-’,‘X’,‘÷’。逻辑运算——‘与’,‘或’,‘非’等。2数据寄存器ALU十进制调整标志寄存器内部总线ALU原理框图3二.控制单元控制单元是产生操作命令的机构,是计算机的指挥中心。输入设备数据处理输出设备外设数据控制单元数据4控制单元由3部分组成:指令部件时序部件微操作控制部件指令部件指令部件一般包括程序计数器、指令寄存器和指令译码器。程序计数器——Program

Counter功能:存放下一条执行指令的首地址。修改PC值可以实现程序转移。5指令寄存器IR——InstructionRegister功能:存放当前要执行指令的内容。指令译码器ID——InstructionDecoder功能:分析指令,产生相应的操作控制电平。时序部件功能:产生计算机各部件所需的定时信号。组成:时钟源、启/停逻辑和时钟分配器。时钟源——产生具有一定频率和宽度的脉冲信号。启/停逻辑——控制时钟信号的开关。时钟分配器——产生一系列的节拍和脉冲。6……Ts机器周期……TmTm指令周期(1~5个Tm)3个概念:时钟周期Ts机器周期Tm指令周期Ti7微操作控制部件功能:根据指令产生计算机各个部件所需要的控制信号。实现方式:组合逻辑控制、微程序控制以及可编程逻辑阵列。组合逻辑控制——控制信号采用组合逻辑设计方法实现。微程序控制——利用程序存储控制的原理。可编程逻辑阵列(PLA)——通过程序设计来执行特定逻辑功能的组合逻辑结构。8三.寄存器阵列微处理器内部都有临时存放数据和地址的寄存器阵列。可分为数据寄存器、地址寄存器和控制信息寄存器和缓冲寄存器。数据寄存器累加器(Accumulator)CPU中至少要有一个累加器,数据运算中最常用。通用寄存器组临时存放数据和地址,减少访问存储器的次数,从而提高运算速度。9地址寄存器程序计数器PC堆栈指针SP(StackPointer)状态信息寄存器标志寄存器FR或程序状态字PSW缓冲寄存器数据缓冲器地址缓冲器103.28086/8088微处理器一、功能结构二、寄存器组四、重叠技术五、存储器结构三、8086/8088引脚信号11一、8086/8088功能结构DLDHCLCHBLBHALAHDISIBPSP通用寄存器地址寄存器AXBXCXDX运算寄存器标志寄存器ALUEU控制电路IP内部暂存器ESSSDSCS16654321指令队列I/O控制电路2016∑8086总线16执行单元总线接口单元12CPU从功能上分成2大部分:

执行单元EU(ExecutionUnit)

总线接口单元BIU(BusInterfaceUnit)BIU负责与存储器接口,完成CPU与存储器之间的信息传送。EU部分负责指令的执行,包括取指、执行等。基本结构功能说明注意1.8086数据总线为16位,指令队列6字节。2.8088外部数据总线为8位,指令队列4字节。13二、8086/8088寄存器组1.通用寄存器

数据寄存器:

AX、BX、CX、DX。

地址指针与变址寄存器:SP、BP、SI、DI。2.段寄存器CS、SS、DS、ES。

IP(InstructionPointer):指令指针寄存器。

FLAG(PSW):标志寄存器3.控制寄存器141.通用寄存器(CurrentRegister)150堆栈指针(StackPointer)基址指针(BasePointer)源变址指针(SourceIndex)目的变址指针(DestinationIndex)地址指针/变址寄存器P19AXBXCXDX70158累加器(Accumulator)基址寄存器(Base)计数寄存器(Count)数据寄存器(Data)数据寄存器AHALBHBLCHCLDHDLSPBPSIDI15.数据寄存器累加器AXAX是算术运算的主要寄存器,所有I/O指令都使用AX与外部设备交换数据。例:

INAL

,20H OUT30H,AX基址寄存器BX在计算存储器地址时,经常用来存放基址。例:MOVBX,01HMOVAX,[BX+03H]16计数寄存器CX在循环LOOP指令和串处理指令中用作隐含计数器。例:MOVCX,200HAGAIN:…………LOOPAGAIN;(CX)-1

(CX);结果0转AGAIN17一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位。数据寄存器DX对某些I/O操作DX可用来存放I/O的端口地址(口地址

256)。例:

MULBX;(AX)(BX)(DX)(AX)INAL,DX;端口读操作18.地址指针和变址寄存器SP、BP、SI、DI4个16位寄存器,只能按字(16位)进行操作。对存储器操作数寻址时,用来提供偏移地址。段地址:只取段起始地址高16位值。偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。逻辑地址形式:段地址:偏移地址0000B高16位段地址偏移值段起始地址段内偏移地址…19地址指针寄存器(SP、BP)SP(StackPointer)——堆栈指针寄存器用来指示栈顶的偏移地址,必须与SS段寄存器联合使用确定实际地址。例:(SS)=3F00H,(SP)=0060H堆栈和指针如下1MX8位存储体D7~D0A19~A000000HFFFFFH栈底a0a1…………3F000H(SS)=3F00H(SP)=0060H3F060H4EFFFHDBAB20堆栈是内存中开辟的一个特殊数据区,一端固定,一端浮动,严格按照先进后出的工作原则。BP(BasePointer)——基址指针寄存器可以与SS寄存器联合使用来确定堆栈段中某一数据区的基址位置。某些寻址方式中,BP用来存放段内偏移地址的一部分。21变址寄存器(SI、DI)SI——SourceIndex源变址寄存器DI——DestinationIndex目的变址寄存器SI、DI常用于字符串操作指令中,指示存放操作数物理地址的偏移量。通常SI、DI分别与数据段DS、附加段ES联用。并且SI,DI具有自动增量和自动减量功能。8086/8088指令系统有5条字符串操作指令,都隐含的使用了SI、DI寄存器。例:

MOVAX,[SI]222.段寄存器、控制寄存器150CodeSegment代码段寄存器DataSegment数据段寄存器StackSegment堆栈段寄存器ExtraSegment附加段寄存器150InstructionPointer指令指针FlagReg

标志寄存器段寄存器组控制寄存器CSDSSSESIPFLAG23.段寄存器4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。其中,CS——用来识别当前代码段(程序一般放在代码)。DS——用来识别当前数据段寄存器。SS——用来识别当前堆栈段。ES——用来识别当前附加段。24指令指针寄存器IP用来存储代码段中的偏移地址;程序运行过程中IP始终指向下一次要取出的指令偏移地址。IP要与CS相配合才能形成真正的物理地址。标志寄存器FLAG或PSW—(ProgramStatusWord)程序状态字PSW是一个16位寄存器,由条件码标志、控制标志构成。8086只用了其中9位,6位条件码标志,3位控制标志。.控制寄存器25CFPFAFZFSFTFIFDFOFD15D11D10D9D8D7D6D4D2D0FLAG寄存器结构状态(条件码)标志:用来记录程序中运行结果的状态信息作为后续条件转移指令的转移控制条件。∴称为条件码。状态标志包括6位:CF、PF、AF、ZF、SF、OFCFPFAFZFSFOF控制标志位包括3位:TF、IF、DFDFTFIF控制标志:对控制标志位进行设置后,对其后的操作起控制作用。26①.OF(OverflowFlag)溢出标志计算机中数采用补码表示,所以溢出一般指补码溢出。当:OF=1运算过程中,操作数溢出。OF=0运算过程中,操作数没有溢出。字节运算范围:-128~+127字运算范围:-32768~+32767②.SF(SignFlag)符号标志当:SF=0记录运算结果的符号为正。SF=1

记录运算结果的符号为负。27③.ZF(ZeroFlag)零标志当:ZF=0

运算结果不为0。ZF=1运算结果为0。④.CF(CarryFlag)进位标志

当:CF=1

记录运算时从最高有效位产生进位值。CF=0

记录运算时从最高有效位没有进位值。⑤.AF(AuxiliaryCarryFlag)辅助进位标志当:AF=1

记录运算时第4位产生进位值。AF=0

记录运算时第4位没有进位值。28用来为机器中传送信息时,可能产生的代码出现情况提供检验条件。⑥.PF(ParityFlag)奇偶标志

当:PF=1

结果操作数低8位中有偶数个1。PF=0

结果操作数低8位中有奇数个1。⑦.TF(TrapFlag)跟踪(陷阱)标志位TF=1:每执行一条指令后,自动产生一次内部中断使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。TF=0:CPU正常工作,不产生陷阱。29⑧.IF(InterruptFlag)中断标志位IF=1:允许外部可屏蔽中断。IF=0:禁止外部可屏蔽中断。IF对不可屏蔽中断和内部软中断没有影响。⑨.DF(DirectionFlag)方向标志位DF标志用以控制串处理指令的步进方向,决定地址是增量还是减量。DF=1,串地址为减量,从高地址向低地址。DF=0,串地址为增量,从低地址向高地址。30小结AXBXCXDXAHALBHBLCHCLDHDLSPBPSIDIIPFLAGCSDSSSES150累加器基址寄存器计数寄存器数据寄存器堆栈寄存器基址指针源变址寄存器目的变址寄存器指令指针标志寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器数据寄存器地址指针/变址寄存器通用寄存器组控制寄存器段寄存器31三、8086/8088引脚信号8086/8088CPU有40条引脚,采用双列直插(DIP)封装形式,为了减小芯片引脚数目,8086/8088CPU采用分时复用的地址/数据总线。328086/8088引脚分配图:Ready8086/8088GNDAD0AD15~NMIINTRCLKVccResetA16/s3A20/s6~BHE/S7MN/MXRDWRHOLDHLDATESTM/IODT/RDENALEINTACPU(QS1)(QS0)(S0)(S1)(S2)(LOCK)(RQ/GT0)(RQ/GT1)33引脚说明:MN/MX:最小模式/最大模式控制端。MN/MX=1,CPU工作于最小模式。最小模式MN/MX=0,CPU工作于最大模式。最大模式系统中只有8086/8088一个微处理器,提供所有的总线控制信号。系统由多个CPU组成,一个8086/8088主处理器和一个协处理器。总线控制信号通过8288提供。34四、8086/8088重叠技术DLDHCLCHBLBHALAHDISIBPSP通用寄存器地址寄存器AXBXCXDX运算寄存器标志寄存器ALUEU控制电路IP内部暂存器ESSSDSCS16654321指令队列I/O控制电路2016∑8086总线执行单元总线接口单元16351.指令队列指令执行顺序8086的指令队列为6字节,8088的指令队列为4字节。不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使BIU具有预取指令的功能,是一种先进先出(FIFO)的数据结构。顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。执行转移指令:BIU清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单元开始重新填满队列。362.8086/8088特点在一条指令的执行过程中,可以取出下一条(或多条)指令,指令在指令队列中排队;在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。8086/8088取指部分与执行部分是分开的,可以重叠。重迭操作技术一方面提高了整个执行速率,另一方面降低了与之相配的存储器的存取速度的要求37重迭技术与非重迭技术比较指令执行由4个步骤循环来完成:①.取指令(IF)②.指令译码(ID)③.执行指令(EX)④.结果写回(WB)指令执行的时空图比较IFIDEXWB``ST12345678重迭技术SIFIDEXWB``T12345678非重迭技术38五、存储器结构16位字长的CPU如何提供20位的地址?重点问题:4、CPU和存储器或I/O端口之间传送数据1、存储单元的地址和内容2、存储器地址分段3、逻辑地址与物理地址介绍内容:391、存储单元的地址和内容㈠.存储单元地址:按照字节编址。㈡.存储单元内容:一个存储单元的有效信息。㈢.字单元地址的排列规则。……..11001110B……..内容00000H00001H00010HFFFFEHFFFFFH物理地址㈠.存储单元地址及内容40㈡.字单元地址的排列规则机器字长是16位,而大部分数据以字节(8位)为单位表示。因此,一个字存入存储器占有连续的二个单元。低位字节存入低地址高位字节存入高地址排列规则:字单元地址:采用它的低地址来表示。4100101111B00011110B….….00010010B00110100B0000H0001H0002H0003H0004H0005H0006H1234H1235H例:字节单元:字单元:(0004H)=1234H(0004H)=34H(0005H)=12H同一个地址既可以看作字节单元地址,又可看作字单元地址,需要根据使用情况确定。回422.存储器地址分段①.16位的地址指针寄存器可寻址范围为64KB。8086/8088有20位地址总线,可寻址空间为1MB。CPU中的寄存器是16位的,20位地址无法用16位寄存器表示,因此必须将1MB的memory划分成若干个段。②.在存储器中的分段可以连续排列,也可以断续排列或重叠排列。分段是在程序员在编制程序时完成的。段内地址为16位,每个段的大小最大可达64KB;可以根据需要来确定段大小,可以是1,100,1000,······,在64K范围内的任意字节数。8086/8088的存储器最多可分成64个段。43注意:IBMPC机对段的起始地址有限制,即段不能从任意地址开始:必须从任一小段的首地址开始。对于16位地址总线,段内存储器小段地址如下:0000H0001H0002H······000EH000FH0010H0011H0012H······001EH001FH0020H0021H0022H······002EH002FH……······························FFF0HFFF1HFFF2H······FFFEHFFFFH小段(Paragraph)——从0地址开始每16字节为一小段。0000H0010H0020H······FFF0H44③.确定了段的起始地址,该段的位置即确定了。在Memory单元段内:④.一旦段地址(即段首地址)和偏移地址(即地址指针地址)确定,则该存储单元的地址就是唯一的。相对于段首地址的位置=段内偏移地址8088有20条地址总线,直接寻址能力为220=1MB用16进制数表示1M字节的地址范围应:8088内部20位物理地址形成逻辑地址与物理地址。00000H~FFFFFH453.逻辑地址与物理地址物理地址=段地址×16+偏移地址十进制数×16二进制数左移4位例:8000:0100分别为逻辑地址中的段地址和偏移地址,则物理地址为

?80100H00000001000000001000000000010000010000000000000010001000000000000000000046物理地址的形成逻辑地址与物理地址150300000偏移地址地址加法器物理地址019基地址····························································2000H基地址5F62H偏移地址Σ25F62H逻辑地址物理地址47段寄存器和其他寄存器组合指向存储单元代码段数据段堆栈段DSSI、DISSSP、BPCSIP可以跨段操作,但必须说明。48各段在存储器中分配各段在存储器中分配分4种情况讨论:①.由操作系统负责分配②.各段也可以允许重迭通常,各段在存储器中的分配是由操作系统负责。每个段可以独立地占用64KB存储区。每段的大小允许根据实际需要分配,不一定要占段可重迭,但使用时防止冲突。64KB。每个存储单元的内容不允许发生冲突。49③.在程序的首部设定各段寄存器的值如果程序中的四个段都是64K的范围之内,程序运行时所需要的信息都在本程序所定义的段区之内,程序员只要在程序的首部设定各段寄存器的值就可以了。④.动态地修改段寄存器的内容须动态地修改段寄存器的内容。如果程序的某一段(如数据段)在程序运行过程中会超过64K空间,或者程序中可能访问除本身四个段以外的其他段区的信息,那么在程序中必508086/8088存储器中部分存储单元的固定分配规则在8086/8088CPU的IBMPC系统中,存储器首尾地址的用途固定。00000H~003FFH共1K内存单元用于存放中断向量。FFFF0H~FFFFFH是存储器底部的16个单元。系统加电复位时,会自动转到FFFF0H单元开始执行。在FFFF0H处存放一条无条件转移指令,转向系统初始化程序。514.CPU和存储器或I/O端口之间传送数据讨论内容:CPU和存储器或I/O端口之间数据传送的方式字数据读/写操作字节读/写操作52字数据读/写操作当操作数存放在偶地址开始两个存储单元或两个I/O端口中,需要1个总线周期完成16位的数据传输。即操作数的低8位—在偶地址单元或在偶地址端口高8位—在奇地址单元或在奇地址端口操作数最好存放在偶地址开始两个存储单元或两4个时钟周期)可以完成16位数据传送。个I/O端口中。这样,在一个总线周期内(通常53字数据读/写偶地址操作如下图:CPU高8位数据低8位数据内存偶地址奇地址低地址高地址转54需要2个总线周期,才能完成16位的数据传输。当操作数存放在奇地址开始两个存储单元时,在第一个总线周期中:应于奇地址单元或奇地址端口字节(操作字低8位),通过数据总线高8位进行传输,而数据总线低8位处于空闲状态。在第二个总线周期中:对应于偶地址单元或偶地址端口字节(操作字高8位),通过数据总线低8位进行传输,而数据总线高8位处于空闲状态。由此可见,操作数存放在奇地址开始两个存储单元/两个I/O端口中进行数据传输,8086需要2个总线周期。55字数据读/写奇地址操作如下图:CPU空闲········数据数据内存奇地址偶地址高8位第一个总线周期内存CPU········空闲数据数据奇地址偶地址低8位第二个总线周期56小节一、8086/8088内部基本机构1.EU2.BIU二、寄存器组四、8086/8088存储器结构1.通用寄存器2.段寄存器3.控制寄存器1.16位字长的CPU如何提供20位的地址?三、引脚信号说明最大/最小工作模式。2.存储器的分配规则?573.38086总线操作和时序指令周期、总线周期和时钟周期··········································CPU取指令部件译码部件执行部件RDCS:IPCLK58指令周期(InstructionCycle)总线周期(BusCycle)时钟周期(ClockCycle)执行一指令所需要的时间。8088中不同指令的指令周期是不等长的,最短的指令只需要1个字节,而最长指令需要6个字节。CPU从存储器或I/O端口存取一个字节所花的时间。通常,1个指令周期可以分为若干总线周期。而1个最基本的总线周期由4个时钟周期(状态)组成。CPU主频的倒数。59总线操作总线操作CPU执行总线周期与存储器或I/O端口交换数据。总线操作分类按照数据传输方向分:①.读总线周期②.写总线周期总线操作组成CPU的每条指令都有自己固定的操作时序。总线周期基本组成:①.存储器读/写②.

I/O读写③.中断响应④.空转周期60总线操作说明典型总线周期序列(读周期)T1T2T3TWT4T1T2T3T4①.T1状态CPU向多路复用总线上发出地址信息,指出要寻址存储单元或外设端口。②.T2状态CPU从总线上撤消地址信息,使总线的低16位置成高阻状态,为传输数据作准备。T1T2高4位输出总线状态信息:中断允许状态等。61③.T3状态T1T2T3TWT4T1T2T3T4高4位提供状态信息,低16位上出现CPU从存储器或I/O端口读入的数据。T3如果,存储器或I/O端口不能及时配合CPU传送数据。CPU会在T3之后插入一个或多个等待周期TW。TW状态,总线上信息情况和T3状态的信息状态一样。数据传送完成,CPU自动脱离TW状态而进入T4状态。TW④.T4状态总线周期结束。T4623.480486微处理器一、80486的内部结构二、80486的工作模式三、80486的外部引脚讲授内容:63一、80486的内部结构1.80486的基本结构运算部分MMU控制部分指令译码指令预取部分CacheBIUP1764运算部分存储管理部分(MMU)8K高速缓存(Cache)指令队列控制部分系统总线接口部分成组传送控制器,Cache控制器总线控制器,地址驱动器写缓冲器,数据总线收发器6580486微处理器结构框图定点运算及寄存器浮点运算及寄存器存储器段页管理8KCache指令译码与控制指令队列系统总线管理662.80486寄存器组基本结构寄存器系统级寄存器调试与测试寄存器通用寄存器段寄存器指令指针(EIP

)标志寄存器(EFLAGS)32位宽度控制寄存器系统地址寄存器P18-2167D16D31RVMACD17D18D19CPAZSTIDOIOPLNTD15D0标志寄存器(EFLAGS)80486微处理器标志寄存器为32位,共14个标志,占15位。3类标志:状态标志C、P、A、Z、S、O控制标志T、I、D系统标志AC、VM、R、NT、IOPL、CPAZSOTIDIOPLNTRVMAC80486比8086增加的是5个系统标志(占6位)。683.80486微处理器的地址空间输入/输出(I/O)地址空间存储地址空间

虚拟空间——逻辑空间,编写程序的空间。

物理空间——主存空间,主存储器的实际空间。

线性空间——虚拟空间线性变换后的32位空间。FFFFFFFFH4GB00000000H物理存储空间物理I/O空间64KB不可访问00000000H0000FFFFHM/IO=1=0P21~2269二、80486工作模式1.实地址模式实地址模式下,80486与16位的8086具有相同的基本体系结构。并且实模式下,还能有效的使用8086没有的寻址方式、32位寄存器和大部分指令。存储空间及实地址模式下的编址保留的地址空间物理地址=段地址X16+

偏移地址0000,0000H~0000,03FFH:中断向量区。FFFF,FFF0H~FFFF,FFFFH:系统初始化区。在实地址模式下,可以把工作模式设定为保护模式。P23702.保护虚拟地址模式保护虚拟地址模式————保护模式保护的概念

存储空间虚拟86环境环保护方式——用户程序之间以及用户程序与操作系统之间实行隔离。0级1级2级3级80486可为一个任务提供4GB的物理空间。80486微处理器允许在实方式和保护模式下执行8086的应用程序。71三、80486的外部引脚数据线(D0~D31)地址线D0D7D8D15D16D23D24D31控制线A2~A31时钟(CLK)总线周期定义组(W/R,D/C,M/IO,LOCK,PLOCK)总线仲裁信号组(HOLD,HLDA,BOFF,BREQ)P25BE0,BE1,BE2,BE3数据校验位组(DP0~DP3,PCHK)数据线宽度控制组(BS16,BS8)总线控制组(ADS,RDY)7280486D0~D31数据线ADSRDY总线控制NMIINTR中断信号PCDPWTFLUSHKENEADSAHOLDCache

控制线A2~A31BE0BE3·字节使能地址线BREQHOLDHLDABOFF总线仲裁信号BRDYBLAST触发控制DS8DS16宽度控制数据线DP3PCHKDP0校验PLOCKM/IO··总线周期定义FERRIGNNE数值出错报告RESET复位CLK时钟A20MA20屏蔽733.5Pentium微处理器一、Pentium的内部结构二、80X86的发展过程三、80X86的标志寄

温馨提示

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

评论

0/150

提交评论