您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 12章-32位微机原理与接口技术
科学出版社微机接口技术微型计算机接口技术1第十二章32位微机原理与接口技术微机接口技术2本章要点通用寄存器,段寄存器,专用寄存器,系统地址寄存器,系统段寄存器,控制寄存器,调试寄存器,测试寄存器实地址模式,虚地址保护模式,虚拟8086模式,系统管理模式SMM处理器选择伪指令虚拟设备驱动程序(VxD),WINDOWS驱动程序模型(WDM)VxD设备描述符块DDB微机接口技术3本章学习目标掌握32位微处理器中新增的寄存器组。了解32位微处理器的三种工作模式:实模式、虚拟地址保护模式、虚拟8086模式、系统管理模式SMM。了解32位微机中新增指令集了解虚拟设备驱动程序(VxD)基础知识和WINDOWS驱动程序模型(WDM)基础知识。微机接口技术412.132位微处理器Intel80x86主流CPU系列不断创新和改进,从80386开始,到80486、Pentium、PentiumII/III、Pentium4等都是32位的微处理器,支持32位数据类型,32位操作系统和32位的物理地址。从80386开始就具备了3种工作模式,即实地址模式、虚地址保护模式、虚拟8086模式。到80486DX又增加了1种工作模式,即系统管理模式(SMM)。微机接口技术512.1.132位微处理器的寄存器组32位微处理器中除了包含8位和16位寄存器外,还引入了若干32位寄存器。80386及其后继机型的可见寄存器组如图12.1所示。通用寄存器32位x86CPU的32位通用寄存器有8个,分别是EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP.,它们是8086/8088CPU中16位寄存器AX、BX、CX、DX、SI、DI、BP、SP的扩展这些32位的寄存器可以用来保存数据、传送数据、保存算术运算和逻辑运算的结果,并且所有32位的通用寄存器都可以用于存放地址,在基址、变址寻址方式中使用。另外在专用特性上,和原16位寄存器的专用特性上是一致的,如EAX专用于乘除法和I/O指令。ECX具有循环计数特性,ESI和EDI作为串处理指令专用的地址寄存器等。微机接口技术612.132位微处理器中可见寄存器组AHAXALBHBXBLCHCXCLDHDXDLSPBPDISIIPFLAGSEAXEBXECXEDXESPEBPEDIESI32位寄存器名称16位寄存器名称名称累加器基址指针计数寄存器数据寄存器堆栈指针基址指针目的变址寄存器源变址寄存器指令指针标志寄存器EIPEFLAGSCSDSESSSFSGS代码段段寄存器数据段段寄存器附加段段寄存器堆栈段段寄存器附加段段寄存器附加段段寄存器微机接口技术712.1.132位微处理器的寄存器组段寄存器除了原有的CS、DS、ES、SS外,32位微处理器中还增加了2个段寄存器FS和GS,也属于附加的数据段。程序在不重新设置段寄存器值的情况下,能访问6个不同的段。内存单元的逻辑地址仍采用段地址:偏移地址的形式。但是在保护模式下,段寄存器的内容不再是段值,而是在系统中能够查找到段的一个选择符。专用寄存器32位微处理器中的EIP和EFLAGS是16位指令指针寄存器IP和标志寄存器FLAGS的扩展。EFLAGS是在16位FLAGS的基础上扩展了8个控制标志位和4个状态标志位,其他标志位的位置和意义与16位中的相同。见图12.2。微机接口技术812.1.132位微处理器的寄存器组专用寄存器中扩展的控制标志位的含义为:I/O特权标志位IOPL(I/OPrivilegeLevel):占2位,用来表示I/O操作处于0~3级特权中的哪一级,只有当前特权级CPL在数值上小于或等于IOPL,I/O指令才可以执行。IOPL仅用于保护虚地址方式。CF0123456789PFAFZFSFTFIFDF101112131415161718192021OFIOPLNTRFVMACVIFVIPID000000000031图12.232位EFLAGS标志寄存器微机接口技术912.1.132位微处理器的寄存器组专用寄存器中扩展的控制标志位的含义为:嵌套任务标志NT(NestedTask):当该位被置1的时候,表示当前执行的任务正嵌套在另一任务中,否则该位清0。置1和清0都是通过向其他任务的控制转移来实现的,NT也仅用于虚地址方式。在保护模式下中断和CALL指令可以引起任务切换,任务切换时,NT置1,否则清0。在中断返回指令IRET执行时,如果NT=1,则中断返回引起任务切换前的程序段,否则只产生任务内的控制转移。重启动标志RF(RestartFlag):配合调试寄存器的断点或单步操作一起使用,在处理断点之前,在两条指令之间检查到RF为1,则下一条指令执行时的调试故障被忽略。在一条指令完整执行完后,将RF清0。当接收到一个非调试故障的故障信号时,RF置1。微机接口技术1012.1.132位微处理器的寄存器组专用寄存器中扩展的控制标志位的含义为:虚拟8086方式标志VM(Virtual8086Mode):VM位置1,表示80386工作在虚拟8086模式。对齐检查标志AC(AlignmentCheck):当AC=1时,表示有对齐故障,即一个字访问操作时的访问地址是奇地址,或者一个双字访问操作的访问地址是一个不在双字边界上的地址等。对齐故障只由特权级3的运行产生,在特权级0~2上可以忽略AC中位的设置。虚拟中断允许标志位VIF(VirtualIF):VIF=1表示允许虚拟8086模式或允许保护模式虚拟中断。虚拟中断标志是所有中断标志的虚拟映像。微机接口技术1112.1.132位微处理器的寄存器组专用寄存器中扩展的控制标志位的含义为:虚拟中断挂起标志VIP(VirtualIP):当允许虚拟8086方式扩充或允许保护模式虚拟中断时,该位指示虚拟中断是否挂起。当VIF=0时,VIP强制为0,否则为1。标识标志ID:其功能是测试微处理器是否支持CPU标识指令CPUID。CPUID的作用是给软件提供提供Intel系列机型号、软件在微处理器上的执行步骤等信息。微机接口技术1212.1.132位微处理器的寄存器组从80386开始,在CPU中设置了4个系统级寄存器,它们分别是全局描述符表寄存器GDTR、中断描述符表寄存器IDTR、局部描述符表寄存器LDTR和任务寄存器TR。其中GDTR和IDTR称为系统地址寄存器,LDTR和TR称为系统段寄存器。这些寄存器只在保护模式下使用。GDTR和IDTR必须在转入保护模式之前进行初始值设定,这两个寄存器在实地址模式下可以访问。LDTR和TR只能在保护模式下使用,程序只可以访问段选择寄存器,其他的缓冲部分是在任务切换时由LDT描述符和TSS描述符中自动装入的。微机接口技术1312.1.132位微处理器的寄存器组系统地址寄存器和系统段寄存器全局描述符表寄存器GDTR:是一个48位的寄存器,用来存放全局描述符表(GDT)的32位线性基地址和16位界限值。中断描述符表寄存器IDTR:是一个48位的寄存器,用来存放中断描述符表(IDT)的32位线性基地址和16位界限值。局部描述符表寄存器LDTR:是一个16位的寄存器,用来存放局部描述符表(LDT)的段选择字。任务寄存器TR:是一个16位的寄存器,用来存放任务状态段表(TSS)的段选择字。微机接口技术1412.1.132位微处理器的寄存器组32位微处理器为了控制管理的需要,配备了控制寄存器。在80386中配备了3个32位的控制寄存器(CR0,CR2,CR3),发展到Pentium微处理器时,就有5个控制寄存器(CR0~CR4),不过,控制寄存器中的一些位被重新定义了。这些控制寄存器中保存着全局性的和任务无关的机器状态,供应用程序读取,而写这些控制寄存器的操作被大多数系统禁止。5个控制寄存器,示意如图12.3。微机接口技术15图12.332位微处理器中控制寄存器CR401234567310123431VMEPVITSDDEPSE0MCE缺省为0PWTPCD页目录基地址寄存器1211012345161731保留页故障线性地址寄存器183029PEMPEMTSETNEWPAMNWCDPGCR3CR1CR2CR0微机接口技术1612.1.132位微处理器的寄存器组控制寄存器CR0:机器状态字PE:保护模式允许位,当PE=1时表示启动系统后进入保护模式;PE=0表示实地址模式。MP:浮点协处理器监控位。MP=1,表示有协处理器在工作,MP=0表示协处理器未工作。EM:模拟浮点协处理器位。EM=1,表示用软件仿真协处理器,即没有配备浮点部件。TS:任务切换位。每次任务切换的时候,微处理器都将该位置1。CLTS指令将该位置0。在解释浮点算术运算指令时要测试该位。微机接口技术1712.1.132位微处理器的寄存器组控制寄存器CR0:机器状态字ET:处理器扩展类型位。ET=1表示系统中配置了80387数值协处理器,使用32位协处理器协议,ET=0,表示系统中配置80287数值协处理器,使用16位协处理器协议。在Pentium中这位保留。EM=1时ET位失效。NE:数据异常中断控制位。NE=1表示执行浮点运算指令时发生故障,产生异常中断16。NE=0同MSDOS系统中以前所用的所有协处理器的控制之间保持兼容。WP:写保护控制位。WP=1表示表示禁止来自管理程序级的写操作写到用户级的页面上。WP=0通过管理进程可以对用户级的只读页面进行写操作。微机接口技术1812.1.132位微处理器的寄存器组控制寄存器CR0:机器状态字AM:定位屏蔽控制位。AM=1时,EFLAGS中的AC位有效,要进行定位检查。AM=0时,AC位无效,禁止对准校验。NW:不写贯穿位。NW=1禁止通写CACHE。NW=0允许CACHE变成通写方式。CD:高速缓存禁止位。CD=1表示禁止填充高速缓存,错误命中发生也不取指令或数据。CD=0表示允许填充高速缓存。PG:页式管理使能位。PG=1表示允许存储分页,否则禁止存储分页。CR0的值在系统复位的时候,初始值为60000010H。微机接口技术1912.1.132位微处理器的寄存器组控制寄存器CR1:保留控制寄存器,没有定义。CR2:页故障线性地址寄存器。其中存放的是一个32位的线性地址,在分页操作期间,如果出现异常,则产生引起这次异常事故的全32位线性地址保存在CR2中。只有CR0的PG=1时,CR2才有效。CR3:页目录基址寄存器。20位保存页目录表的物理基地址,因为Pentium的页目录表是按页排列的。PWT:页面写贯通。PWT=1表示对当前所访问的页实现通写。PWT=0则实现写返回。PCD:禁止CACHE。PCD=1表示不能对页面目录进行高速缓冲操作。PCD=0则允许进行高速缓冲操作。微机接口技术2012.1.132位微处理器的寄存器组控制寄存器CR4:CPU结构扩展位。其中各位名称和作用如下:VME:虚拟8086方式扩充。VME=1允许虚拟8086方式扩充,VME=0禁止虚拟8086方式扩充。PVI:保护模式虚拟中断。PVI=1允许保护模式虚拟中断,PVI=0禁止保护模式虚拟中断。TSD:禁止定时标志。TSD=1且当前特权级不为0时,禁止RDTSC指令(读时间标志计数器指令)且执行这一指令时将产生故障。TSD=0表示在任何特权级上都允许RDTSC指令执行。DE:调试扩充位。DE=1表示允许调试扩充。DE=0禁止调试扩充。实际上该位控制是否支持I/O断点。微机接口技术2112.1.132位微处理器的寄存器组控制寄存器CR4:CPU结构扩展位。PSE:页大小扩展位。PSE=1允许使用4MB的页面。PSE=0禁止使用4MB的页面。MCE:允许机器检查。MCE=1允许机器检查异常。MCE=0禁止机器检查异常。复位后CR4的内容为0。调试寄存器和测试寄存器32位微处理器中共支持8个32位的可编程调试寄存器,命名为DR0~DR7。其中DR0~DR3为断
本文标题:12章-32位微机原理与接口技术
链接地址:https://www.777doc.com/doc-3496984 .html