您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《微机原理与接口技术(80386-Pentium)》-第2章 80386系统原理
2005年1月版权所有©天津大学电子信息工程学院课件制作组第2章80386系统原理2005年1月版权所有©天津大学电子信息工程学院课件制作组•2.180386系统的核心•80386微处理机是Intel于1985年推出的第一个32位微处理机,也是第一个支持多任务的微处理机。80386的体系结构为用户提供一组32位通用寄存器。它们在使用时不受任何限制,既可用来进行数值计算,又可用它形成存储器地址。80386体系结构还给用户提供了几种存储管理和寻址方式,以满足不同的要求。•此外,80386还提供多种寻址方式、数据类型、指令以及某些特殊的结构,便于高级语言实施。2005年1月版权所有©天津大学电子信息工程学院课件制作组•下图示出了以80386为基础的高性能系统的核心。由图可以看出,高性能系统的核心是:•80386、•数值协同处理器80387、•外部设备控制器82380,•高速缓冲存储器Cache的控制器82385组成。•下图是高性能系统核心的构成2005年1月版权所有©天津大学电子信息工程学院课件制作组80387数值协处理器80386微处理机Cache存储体82380DMA控制器总线系统数据地址控制总线监视数据数据地址控制总线控制82385Cache控制器2005年1月版权所有©天津大学电子信息工程学院课件制作组•80387的作用是加速浮点操作•而高速缓冲存储器Cache的控制器82385,对容量为32K字节的高速缓冲存储器Cache实施控制,并带有总线监视(BusWatching)这一高级特征。•在外部设备控制器82380内集若干系统功能于一体,其中包括动态RAM的更新、中断与计时器和32位直接存储器存取控制。•80386的高性能系统核心配备有两种不同的总线:•一是80386的系统总线;•二是80386的局部总线。2005年1月版权所有©天津大学电子信息工程学院课件制作组2.280386的体系结构•2.2.1寄存器组•80386基本体系结构包括寄存器组、CPU等。•80386总共有34个寄存器,按其功能可分成以下几类:•通用寄存器(General-PurposeRegister)。•段寄存器(SegmentRegister)。•状态和控制寄存器(StatusandControlRegister)。•系统地址寄存器(SystemAddressRegister)。•调试寄存器(DebugRegister)。•测试寄存器(TestRegister)。2005年1月版权所有©天津大学电子信息工程学院课件制作组•通用寄存器(General-PurposeRegister)•8个通用寄存器是8086和80286寄存器的超集,它们的名字和用途分别为:•EAX通常用作累加寄存器(Accumulator)•EBX通常用作基址寄存器(Base)•ECX通常用来记数(Count)•EDX通常用来存放数据(Data)•ESP通常用作堆栈指针(StackPointer)•EBP通常用作基址指针(BasePointer)•ESI通常用作源变址(SourceIndex)•EDI通常用作目标变址(DestinationIndex)2005年1月版权所有©天津大学电子信息工程学院课件制作组•8个通用寄存器中通常保存有32位数据,但为进行16位的操作并提供与Intel系列16位微机兼容,它们的低位部分被当成8个16位的寄存器•为了支持8位的操作还可进一步把EAX、EBX、ECX、和EDX寄存器的低位部分(AX,BX,CX,DX)再进一步分成8位一组的高端和低端两个字节,作为8个8位寄存器。•这8个寄存器分别被命名为AH、BH、CH、DH和AL、BL、CL、DL。对8位或16位寄存器的操作只会影响到相应的寄存器。AXBXCXDXSIDIBPSPAHALBHBLCHCLDHDLEAXEBXECXEDXESIEDIEBIESPAXBXCXDX1615031158702005年1月版权所有©天津大学电子信息工程学院课件制作组•段寄存器(Segmentregister)•80386配备有6个16位的段寄存器,段寄存器也称段选择符(Selector),它们的名字和用途如下:•CS代码段寄存器(CodeSegment)•DS数据段寄存器(DataSegment)•SS堆栈段寄存器(StackSegment)•ES附加数据段寄存器(ExtraSegment)•FS附加数据段寄存器(ExtraSegment)•GS附加数据段寄存器(ExtraSegment)2005年1月版权所有©天津大学电子信息工程学院课件制作组•80386用这6个16位的段寄存器,去选择各自的存储区域。其中CS、DS和SS这3个段寄存器用来对当前的代码段、数据段和堆栈段进行寻址。•而剩下的那3个附加数据段寄存器则是被用来对用户定义的数据区域寻址。代码段堆栈段数据段附加数据段附加数据段附加数据段CSSSDSESFSGS1502005年1月版权所有©天津大学电子信息工程学院课件制作组•在实方式下,•在80386段寄存器•内保存着指定段的•实际地址,如图所示。16位代码段地址16位数据段地址16位堆栈段地址16位ES段地址16位FS段地址16位GS段地址代码数据堆栈附加ES附加FS附加GS2005年1月版权所有©天津大学电子信息工程学院课件制作组•而在保护方式下,•在段寄存器内保存着•的则是16位的地址。•这个16位的地址就是•通常所说的选择符•选择符指示着描述符•表中的某一项,•实际的段基地址则是•被存放在描述符表中•的一个描述符中,•如图所示。16位代码段地址16位数据段地址16位堆栈段地址16位ES段地址16位FS段地址16位GS段地址代码数据堆栈附加ES附加FS附加GS描述符表2005年1月版权所有©天津大学电子信息工程学院课件制作组•段描述符寄存器•对程序员来说,段描述符寄存器是不可见的,然而了解它的存在和作用却是非常有益的。在80386的内部,描述符寄存器与可见的各个段寄存器是相联的,如图2.6所示。每个描述符寄存器中保存着32位的基地址、段界限以及段的其他属性。描述符寄存器(自动装入)段寄存器150物理基地址段界来自描述符的其他段的信息选择符选择符选择符选择符选择符选择符CSSSDSESFSGS2005年1月版权所有©天津大学电子信息工程学院课件制作组•状态和控制寄存器•状态和控制寄存器是由标志寄存器EFLAGS、指令指针EIP和4个控制寄存器CR0~CR3)组成,如图所示。标志寄存器(EFLAGS)指令指针寄存器(EIP)机器状态寄存器(CR0)保留(CR1)页故障地址寄存器(CR2)页目录基址寄存器(CR3)3102005年1月版权所有©天津大学电子信息工程学院课件制作组•1.指令指针寄存器•在指令指针寄存器EIP中,存放着下一条要执行指令的偏移量(Offset),这个偏移量是相对目前正在运行的代码段寄存器CS而言的。偏移量加上当前段的地址,形成了下一条指令的地址。EIP中的低16位可以分开来访问,给它起名叫做指令指针IP(InstructionPointer)寄存器,用于16位寻址操作。•下图是80386指令指针寄存器EIP和标志寄存器EFLAGSIPFLAGSEIPEFLAGS2005年1月版权所有©天津大学电子信息工程学院课件制作组•2.标志寄存器•标志寄存器EFLAGS存放着有关80386微处理机当前状态的信息,如图所示。标志寄存器中的第1、3、5、15位及18~31位都没有定义。但是,当使用SAHF指令或PUSHF指令时,或当出现中断处理时,除位1外,其余各位则全部是0。•下图是80386的标志寄存器EFLAGS2005年1月版权所有©天津大学电子信息工程学院课件制作组•80386的标志寄存器CF:进位标志(S)AF:辅助进位标志(S)PF:奇偶校验标志(S)ZF:零标志(S)SF:符号标志(S)TF:自陷标志(X)IF:允许中断标志(X)DF:方向标志(C)OF:溢出标志(S)IOPL:I/O特权级标志(X)NT:嵌套任务标志(X)RF:恢复标志(X)VM:虚拟8086模式(X)171615140123456789101121331……….CFPFZFAFSFTFIFDFOFNTRFVM0000IOPL12005年1月版权所有©天津大学电子信息工程学院课件制作组•标志寄存器中的位0(CF位)是进位标志位。•标志寄存器中的位2(PF位)是奇偶校验标志位•标志寄存器中的位4(AF位)是辅助进位标志位.•标志寄存器中的位6(ZF位)是零标志位,当结果为零时,被置成1;否则被置成0。•标志寄存器中的位7(SF位)是符号标志位,当结果为负时被置成1;结果为正时,则被置成0。•标志寄存器中的位8(TF位)是自陷标志位,当将其置成1时,则可以进行单步执行。当指令执行完后,就有可能生成异常事故1的自陷。•标志寄存器中的位9(IF位)是中断标志位,是用来表示允许或者禁止某些外部中断。•标志寄存器中的位10(DF位)是定向标志位。2005年1月版权所有©天津大学电子信息工程学院课件制作组•标志寄存器中的位11(OF位)是溢出标志位,用它表示运算时出现的进位进入了结果的高序位,可是高序位却没有进位输出,或是高序位并没有接受进位输入却产生了进位输出。•标志寄存器中的位12、位13(IOPL位)是输入/输出特权级位。•标志寄存器中的位14(NT位)是嵌套任务标志位。•标志寄存器中的位16(RF位)是恢复标志位,也是80386新增添的一位标志位。•标志寄存器中的位17(VM位)是虚拟8086方式标志位2005年1月版权所有©天津大学电子信息工程学院课件制作组•3.控制寄存器•80386还定义了由4个32位的控制寄存器CR0~CR3组成一个寄存器组,如图所示。PG保留机器状态字MSWETTSEMMPPE保留页故障线性地址寄存器页目录基地址寄存器3143210CR0CR1CR2CR30123456789101131000000000000允许分页处理机扩展任务转换模拟协处理器监控协处理器允许保护2005年1月版权所有©天津大学电子信息工程学院课件制作组•在这4个控制寄存器中保存着全局性和任务无关的机器状态。这些寄存器连同后面将要说明的系统地址寄存器(SystemAddressRegister)一起,保存影响系统中所有任务的机器状态。访问控制寄存器时,要用存、取这一类传送指令,例如MOVCR0指令。•控制寄存器CR0包含6个预定义标志,表示和控制机器的状态。其中0~15位叫做机器状态字MSW(MachineStatusWord),这使得80386在保护方式下能与80286兼容。2005年1月版权所有©天津大学电子信息工程学院课件制作组•控制寄存器CR0中的位0是允许保护位PE(ProtectionEnable),用于启动微处理机的保护方式。如果PE被置成1,保护方式启动;如果PE位被置成0,则微处理机在实地址方式下运行。•CR0中的位1是监控协处理器位MP(MonitorCoprocessor)。•它与TS位一起决定:当TS=1时操作码WAIT是否产生一个“协处理器不能使用”的出错信息。•CR0的位2是模拟协处理器位EM(EmulateCoprocessor)。•如果EM=1,则所有协处理器的操作码都将产生“协处理器不能使用”的出错误信号。如果EM=0,则所有协处理器的操作码都能在80287或80387协处理器上执行。•CR0的位3是任务转换位TS(TaskSwitched)。•当一个任务转换完成之后自动把它置成1。随着TS被置成1,协处理器的操作码将会引起一个协处理器不能使用的陷阱。•CR0中的位4是微处理机的扩充类型位ET(ProcessorExtensionType),其内保存着微处理机扩充类型的信息。如果ET=0,表示系统内用的是80387浮点协处理器。这样,设计人员可选择使用80287和80387。•CR0的位31是允许分页位PE(PagingEnable)。•它表示芯片上的分页部件是否允许PG
本文标题:《微机原理与接口技术(80386-Pentium)》-第2章 80386系统原理
链接地址:https://www.777doc.com/doc-3207164 .html