微机原理-第3章-计算机的核心部件-微处理器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章计算机的核心部件-微处理器本章主要内容(1)微处理器的工作模式(2)微处理器的编程结构(3)实模式下的存储器寻址(4)微处理器的内部组成结构(5)微处理器的外部引脚信号及操作时序3.1微处理器的工作模式(1)实模式(2)保护模式(3)虚拟8086模式3.1.1实模式80286以上的微处理器所采用的8086的工作模式。在实模式下,采用类似于8086的体系结构,其寻址机制、中断处理机制均和8086相同;物理地址的形成也同8086一样:将段寄存器的内容左移4位再与偏移地址相加。寻址空间为1MB,并采用分段方式,每段大小为64KB(216);此外,在实模式下,存储器中保留两个专用区域,一个为初始化程序区:FFFF0H~FFFFFH,存放进入ROM引导程序的一条跳转指令;另一个为中断向量表区:00000H~003FFH,在这1K字节的存储空间中存放256个中断服务程序的入口地址,每个入口地址占4个字节,这与8086的情形相同。实模式是80x86处理器在加电或复位后立即出现的工作方式,即使是想让系统运行在保护模式,系统初始化或引导程序也需要在实模式下运行,以便为保护模式所需要的数据结构做好各种配置和准备。实模式是为建立保护式做准备的工作模式。3.1.2保护模式保护模式是支持多任务的工作模式。它提供了一系列的保护机制,如任务地址空间的隔离,设置特权级(0~3共4个特权级),设置特权指令,进行访问权限(如只读、只执行)及段限检查等。80386以上的微处理器在保护模式下可以访问4G字节的物理存储空间,段的长度在启动分页功能时是4G字节,不启动分页功能时是1M字节,分页功能是可选的。在这种方式下,可以引入虚拟存储器的概念,以扩充编程者所使用的地址空间。3.1.3虚拟8086模式虚拟8086模式又称“V86模式”。它是既有保护功能又能执行8086代码的工作模式,是一种动态工作模式。在这种工作模式下,处理器能够迅速、反复进行V86模式和保护模式之间的切换,从保护模式进入V86模式执行8086程序,然后离开V86模式,进入保护模式继续执行原来的保护模式程序。3.2微处理器的编程结构微处理器的编程结构,即是在编程人员眼中看到的微处理器的软件结构模型。软件结构模型便于人们从软件的视角去了解计算机系统的操作和运行。从这一点上说,程序员可以不必知道微处理器内部极其复杂的电路结构、电气连接或开关特性,也不需要知道各个引脚上的信号功能和动作过程。对于编程人员来说,重要的是要了解微处理器所包含的各种寄存器的功能、操作和限制,以及在程序设计中如何使用它们。进一步,需要知道外部的存储器是如何组织的,处理器如何从存储器中取得指令和数据。3.2.1程序可见寄存器程序可见(programvisible)寄存器,是指在应用程序设计时可以直接访问的寄存器。程序不可见(programinvisible)寄存器是指在应用程序设计时不能直接访问,但在进行系统程序设计(如编写操作系统软件)时可以被间接引用或通过特权指令才能访问的寄存器。在80x86微处理器系列中,通常在80286及其以上的微处理器中才包含程序不可见寄存器,主要用于保护模式下存储系统的管理和控制。3.2.280x86/Pentium处理器的寄存器模型图3.2给出了80x86/Pentium微处理器的寄存器模型。它实际上是一个呈现在编程者面前的寄存器集合,所以也称微处理器的编程结构。GSFSSSESDSCSFLAGSIPDISIBPSPDLCLBLALDHCHBHAHEDXECXEBXEAXEDIESIEBPESPEFLAGSEIP31150DXCXBXAX图3.280x86/Pentium处理器的寄存器模型白色区域:8086/8088,80286所具有的;阴影区域:80386,80486及Pentium新增加的。1.通用寄存器通用寄存器也称多功能寄存器,在图3.3所示的寄存器模型中,共有8个通用寄存器,按它们的功能差别,又可分为两组,即:“通用数据寄存器”及“指针寄存器和变址寄存器”。(1)通用数据寄存器通用数据寄存器用来存放8位、16位或32位的操作数。大多数算术运算和逻辑运算指令都可以使用这些寄存器。共有4个通用数据寄存器,它们是EAX、EBX、ECX和EDX。EAX(Accumulator,累加器):EAX可以作为32位寄存器(EAX)、16位寄存器(AX)或8位寄存器(AH或AL)引用。如果作为8位或16位寄存器引用,则只改变32位寄存器的一部分,其余部分不受影响。当累加器用于乘法、除法及一些调整指令时,它具有专门的用途,但通常仍称之为通用寄存器。在80386及更高型号的微处理器中,EAX寄存器也可以用来存放访问存储单元的偏移地址。EBX(Base,基址):EBX是个通用寄存器,它可以作为32位寄存器(EBX)、16位寄存器(BX)或8位寄存器(BH或BL)引用。在80x86系列的各种型号微处理器中,均可以用BX存放访问存储单元的偏移地址。在80386及更高型号的微处理器中,EBX也可以用于存放访问存储单元的偏移地址。ECX(Count,计数):ECX是个通用寄存器,它可以作为32位寄存器(ECX)、16位寄存器(CX)或8位寄存器(CH或CL)引用。ECX可用来作为多种指令的计数值。用于计数的指令是重复的串操作指令、移位指令、循环移位指令和LOOP/LOOPD指令。移位和循环移位指令用CL计数,重复的串操作指令用CX计数,LOOP/LOOPD指令用CX或ECX计数。在80386及更高型号的微处理器中,ECX也可用来存放访问存储单元的偏移地址。EDX(Data,数据):EDX是个通用寄存器,用于保存乘法运算产生的部分积,或除法运算之前的部分被除数。对于80386及更高型号的微处理器,这个寄存器也可用来寻址存储器数据。(2)指针寄存器和变址寄存器这是另外4个通用寄存器,分别是:堆栈指针寄存器ESP、基址指针寄存器EBP、源变址寄存器ESI和目的变址寄存器EDI。ESP(StackPointer,堆栈指针):ESP寻址一个称为堆栈的存储区。通过这个指针存取堆栈存储器数据。这个寄存器作为16位寄存器引用时,为SP;作为32位寄存器引用时,则为ESP。EBP(BasePointer,基址指针):EBP用来存放访问堆栈段的一个数据区的“基地址”。它作为16位寄存器引用时,为BP;作为32位寄存器引用时,则是EBP。ESI(SourceIndex,源变址):ESI用于寻址串操作指令的源数据串。它的另一个功能是作为32位(ESI)或16位(SI)的数据寄存器使用。EDI(DestinationIndex,目的变址):EDI用于寻址串操作指令的目的数据串。如同ESI一样,EDI也可用为32位(EDI)或16位(DI)的数据寄存器使用。2.指令指针寄存器EIPEIP是一个专用寄存器,用于寻址当前需要取出的指令字节。当CPU从内存中取出一个指令字节后,EIP就自动加1,指向下一指令字节。当微处理器工作在实模式下时,这个寄存器为IP(16位);当80386及更高型号的微处理器工作于保护模式下时,则是EIP(32位)。程序员不能对EIP/IP进行存取操作。程序中的转移指令、返回指令以及中断处理能对EIP/IP进行操作。3.标志寄存器EFLAGSEFLAGS用于指示微处理器的状态并控制它的操作。早期的8086/8088微处理器的标志寄存器FLAG为16位,且只定义了其中的9位;80286微处理器虽然仍为16位的标志寄存器,但定义的标志位已从原来的9位增加到12位;80386及更高型号的微处理器则采用32位的标志寄存器EFLAGS,所定义的标志位也有相应的扩充。..IDVIPVIFACVMRFNTIOPODAPC3121201918171615141312111098765432101IOP0ITSZPentium/PentiumII80486SX/80486DX80386DX802868086/8088图3.380x86/Pentium系列微处理器的标志寄存器8086/8088系统中所定义的9个标志位——O、D、I、T、S、Z、A、P、C,这也是实模式下80x86/Pentium系列微处理器所使用的标志位。在这9个标志位中,有6位(即CF、PF、AF、ZF、SF和OF)为状态标志;其余3位(即TF、IF和DF)为控制标志。状态标志反映微处理器的工作状态,如执行加法运算时是否产生进位,执行减法运算时是否产生借位,运算结果是否为零等;控制标志对微处理器的运行起特定的控制作用,如以单步方式运行还是以连续方式运行,在程序执行过程中是否允许响应外部中断请求等。..8086/8088标志寄存器的格式及各位的功能1514131211109876543210OFDFIFTFSFZFAFPFCF状态标志方向标志中断标志跟踪标志(TraceFlag)控制标志进位标志奇偶标志半进位标志零标志符号标志溢出标志六个状态标志的功能简述如下:(1)进位标志CF:当执行算术运算指令时,其结果的最高位有进位或借位时将CF置1;否则将CF置0。(2)奇偶标志PF:该标志位反映操作结果低8位中“1”的个数情况,若为偶数个“1”,则将PF置“1”;若为奇数个“1”,则将PF置“0”。它是早期Intel微处理器在数据通信环境中校验数据的一种手段。今天,奇偶校验通常由数据存储和通信设备完成,而不是由微处理器完成。所以,这个标志位在现代程序设计中很少使用。(3)辅助进位标志AF:辅助进位标志也称“半进位”标志。AF=1,表示本次运算的低4位中的最高位有进位(加法运算时)或有借位(减法运算时)。AF一般用于BCD运算中是否进行十进制调整的依据。十进制调整指令DAA和DAS测试这个标志位。(4)零标志ZF:反映运算结果是否为零。若结果为零,则ZF=1;若结果不为零,则ZF=0。(5)符号标志SF:反映带符号数(以二进制补码表示)运算结果符号位的情况。若结果为负数,则SF=1;若结果为正数,则SF=0。SF的取值总是与运算结果的最高位(字节操作为D7,字操作为D15,双字操作为D31)取值一致。(6)溢出标志OF:反映有符号数运算结果是否发生溢出。若发生溢出,则OF=1;否则,OF=0。溢出是指运算结果超出了计算装置所能表示的数值范围。例如,对于字节运算,数值表示范围为-128~+127;对于字运算,数值表示范围为-32768~+32767。若超过上述范围,则发生了溢出。溢出是一种差错,系统应做相应的处理。“溢出”与“进位”是两种不同的概念。某次运算结果有“溢出”,不一定有“进位”;反之,有“进位”,也不一定发生“溢出”。另外,“溢出”标志实际上是针对有符号数运算而言,对于无符号数运算,不考虑溢出标志。例:指出80x86CPU执行如下指令后,标志寄存器中各状态标志位的值:(1)MOVAX,32C5H(2)MOVAX,0E453HADDAX,546AHADDAX,0C572H解:(1)0011001011000101(2)1110010001010011+0101010001101010+110001010111001010000111001011111010100111000101所以,OF=1SF=1ZF=0OF=0SF=1ZF=0AF=0PF=0CF=0AF=0PF=1CF=1三个控制标志的功能:(1)方向标志DF:用来控制串操作指令的执行。若DF=0,则串操作指令的地址自动增量修改,串数据的传送过程是从低地址到高地址的方向进行;若DF=1,则串操作指令的地址自动减量修改,串数据的传送过程是从高地址到低地址的方向进行。可以设置DF的指令为STD(置1)和CLD(清0)。(2)中断标志IF:用来控制对可屏蔽中断的响应。若IF=1,则允许CPU响应可屏蔽中断请求;若IF=0,则CPU不能对可屏蔽中断请求作出响应。可以设置

1 / 181
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功