资源预览内容
第1页 / 共99页
第2页 / 共99页
第3页 / 共99页
第4页 / 共99页
第5页 / 共99页
第6页 / 共99页
第7页 / 共99页
第8页 / 共99页
第9页 / 共99页
第10页 / 共99页
亲,该文档总共99页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章 微处理器的编程结构6.1 引言nMoore定律: “晶体管的大小将以指数速率变小,而集成到 芯片上的晶体管数目将23年【1824个月 】翻一番。” Gordon Moore,1965n* Gordon MooreIntel公司的创始人,著 名半导体科学家。1978年 8086 2.9万 (3万)n11982年 80286 13.5万n11985年 80386 32万n11990年 80486 120万n11993年 Pentium 320万n11996年 Pentium Pro 550万n11997年2月 Pentium II 750万,300MHzn11999年 Pentium III n22000年(4季度) Pentium IV 4200万,1.4GHz(0.18um工艺)nBBill Gates在未来之路中曾提到, 假若Moore定律能再持续20年n其“微电子器件的发展速度预计一直到21 世纪前期仍将遵循摩尔定律”n* * 此外,人们也在关心其他新型技术,如 激光计算机、量子计算机等新技术的发展。n从 *在计算机结构及信息理论方面,“非冯结 构”- (神经网络仿人脑的思维和记忆模型), 更便于处理某些智能型问题。4004 微处理器(1971,2250晶体管, 4.2mmx3.2mm,构成世界上第一台微型计算机 )8008微处理器(1973 ,3500 晶体管 )8080微处理器(1974,4900晶体管)8086微处理器 (1978,2.9万晶体管 )80286微处理器(1982,13.5万晶体管)80386微处理器(1985,32万晶体管 )80486 微处理器(1990,120万晶体管)Pentium 微处理器(1993,320万晶体管 )Pentium 4微处理器(2000,4200万晶体 管)P4微处理器处理器新革命ITANIUM(安滕)IA-64架 构处理器ITANIUM 2 (2.14亿晶体管,1GHZ主频,0.18微米线宽, 328个寄存器,8级流水,系统总线宽度128位,片内三级 高速缓存-32KB,256KB,3MB,参见P707)6.2 微处理器的工作模式n(1)实模式n(2)保护模式n(3)虚拟8086模式6.2.1 实模式 80286以上的微处理器所采用的8086的工作模式。 在实模式下,采用类似于8086的体系结构,其寻址 机制、中断处理机制均和8086相同; 物理地址的形成也同8086一样:将段寄存器的内容 左移四位再与偏移地址相加。 寻址空间为1MB,并采用分段方式,每段大小为 64KB(216); 此外,在实模式下,存储器中保留两个专用区域, 一个为初始化程序区:FFFF0HFFFFFH,存放进入 ROM引导程序的一条跳转指令; 另一个为中断向量表区:00000H003FFH,在这 1K字节的存储空间中存放256个中断服务程序的入 口地址,每个入口地址占4个字节,这与8086的情形 相同。 实模式是80x86处理器在加电或复位后立即出现的工 作方式,即使是想让系统运行在保护模式,系统初 始化或引导程序也需要在实模式下运行,以便为保 护模式所需要的数据结构做好各种配置和准备。 实模式是为建立保护式做准备的工作模式。6.2.2 保护模式 保护模式是支持多任务的工作模式。 它提供了一系列的保护机制,如任务地址空间的隔 离,设置特权级(03共4个特权级),设置特权指令 ,进行访问权限(如只读、只执行)及段限检查等。n80386以上的微处理器在保护模式下可以访问4G字 节的物理存储空间,段的长度在启动分页功能时是 4G字节,不启动分页功能时是1M字节,分页功能是 可选的。n在这种方式下,可以引入虚拟存储器的概念,以扩 充编程者所使用的地址空间。n6.2.3 虚拟8086模式 虚拟8086模式又称“V86模式”。 它是既有保护功能又能执行8086代码的工作模式,是 一种动态工作模式。 在这种工作模式下,处理器能够迅速、反复进行V86模 式和保护模式之间的切换,从保护模式进入V86模式执 行8086程序,然后离开V86模式,进入保护模式继续执 行原来的保护模式程序。保护模式实模式虚拟8086 模式复位复位复位复位PE=1PE=0作业切换 中断返回中断、异常图注:(1) PE保护模式允许,是80x86控制寄存器CR0的一位(2) 异常80286以上的处理器中,称“内部中断”为异常(exception) 图6.2 三种工作模式的转换6.3 微处理器的编程结构 所谓微处理器的编程结构,即是在编程人员眼中看 到的微处理器的软件结构模型。 软件结构模型便于人们从软件的视角去了解计算机 系统的操作和运行。 从这一点上说,程序员可以不必知道微处理器内部 极其复杂的电路结构、电气连接或开关特性,也不 需要知道各个引脚上的信号功能和动作过程。 对于编程人员来说,重要的是要了解微处理器所包 含的各种寄存器的功能、操作和限制,以及在程序 设计中如何使用它们。 进一步,需要知道外部的存储器是如何组织的,处 理器如何从存储器中取得指令和数据。n6.3.1 程序可见寄存器 程序可见(program visible)寄存器,是指在应用 程序设计时可以直接访问的寄存器。 程序不可见(program invisible)寄存器是指在应用 程序设计时不能直接访问,但在进行系统程序设计( 如编写操作系统软件)时可以被间接引用或通过特权 指令才能访问的寄存器。 在80x86微处理器系列中,通常在80286及其以上的 微处理器中才包含程序不可见寄存器,主要用于保 护模式下存储系统的管理和控制。6.3.2 80x86/Pentium处理器的寄存 器模型 图6.3给出了80x86/Pentium微处理器的寄存器模型 。它实际上是一个呈现在编程者面前的寄存器集合 ,所以也称微处理器的编程结构。GSFSSSESDSCSFLAGSIPDISIBPSPDLCLBLALDHCHBHAHEDXECXEBXEAXEDIESIEBPESPEFLAGSEIP31150DXCXBXAX图6.3 80x86/Pentium处理器的寄存器模型 白色区域:8086/8088,80286所具有的;阴影区域:80386,80486及Pentium新增加的。1. 通用寄存器n通用寄存器也称多功能寄存器,在图6.3所示的寄存 器模型中,共有8个通用寄存器,按它们的功能差别 ,又可分为两组,即:“通用数据寄存器”及“指针寄 存器和变址寄存器”。n(1)通用数据寄存器n 通用数据寄存器用来存放8位、16位或32位的操作 数。大多数算术运算和逻辑运算指令都可以使用这 些寄存器。共有4个通用数据寄存器,它们是EAX、 EBX、ECX和EDX。nEAX(Accumulator,累加器):EAX可以作为32位 寄存器(EAX)、16位寄存器(AX)或8位寄存器(AH或 AL)引用。n如果作为8位或16位寄存器引用,则只改变32位寄存 器的一部分,其余部分不受影响。当累加器用于乘 法、除法及一些调整指令时,它具有专门的用途, 但通常仍称之为通用寄存器。n在80386及更高型号的微处理器中,EAX寄存器也可 以用来存放访问存储单元的偏移地址。nEBX(Base,基址):EBX是个通用寄存器,它可以 作为32位寄存器(EBX)、16位寄存器(BX)或8位寄存 器(BH或BL)引用。n在80x86系列的各种型号微处理器中,均可以用BX存 放访问存储单元的偏移地址。n在80386及更高型号的微处理器中,EBX也可以用于 存放访问存储单元的偏移地址。nECX(Count,计数):ECX是个通用寄存器,它可以 作为32位寄存器(ECX)、16位寄存器(CX)或8位寄存 器(CH或CL)引用。nECX可用来作为多种指令的计数值。用于计数的指令 是重复的串操作指令、移位指令、循环移位指令和 LOOP/LOOPD指令。n移位和循环移位指令用CL计数,重复的串操作指令 用CX计数,LOOP/LOOPD指令用CX或ECX计数。n在80386及更高型号的微处理器中,ECX也可用来存 放访问存储单元的偏移地址。nEDX(Data,数据):EDX是个通用寄存器,用于保 存乘法运算产生的部分积,或除法运算之前的部分 被除数。n对于80386及更高型号的微处理器,这个寄存器也可 用来寻址存储器数据。(2) 指针寄存器和变址寄存器n这是另外4个通用寄存器,分别是:堆栈指针寄存器 ESP、基址指针寄存器EBP、源变址寄存器ESI和目 的变址寄存器EDI。nESP(Stack Pointer,堆栈指针):ESP寻址一个称 为堆栈的存储区。通过这个指针存取堆栈存储器数 据。n这个寄存器作为16位寄存器引用时,为SP;作为32 位寄存器引用时,则为ESP。nEBP(Base Pointer,基址指针):EBP用来存放访 问堆栈段的一个数据区的“基地址”。它作为16位寄存 器引用时,为BP;作为32位寄存器引用时,则是 EBP。nESI(Source Index,源变址):ESI用于寻址串操作 指令的源数据串。它的另一个功能是作为32位(ESI) 或16位(SI)的数据寄存器使用。nEDI(Destination Index,目的变址):EDI用于寻 址串操作指令的目的数据串。如同ESI一样,EDI也 可用为32位(EDI)或16位(DI)的数据寄存器使用。2. 指令指针寄存器EIP(Instruction Pointer)nEIP是一个专用寄存器,用于寻址当前需要取出的指 令字节。当CPU从内存中取出一个指令字节后,EIP 就自动加1,指向下一指令字节。n当微处理器工作在实模式下时,这个寄存器为IP(16 位);当80386及更高型号的微处理器工作于保护模 式下时,则是EIP(32位)。n程序员不能对EIP/IP进行存取操作。程序中的转移 指令、返回指令以及中断处理能对EIP/IP进行操作。3. 标志寄存器EFLAGSnEFLAGS用于指示微处理器的状态并控制它的操作。 图6.4展示了80x86/Pentium系列所有型号微处理器 的标志寄存器的情况。n早期的8086/8088微处理器的标志寄存器FLAG为16 位,且只定义了其中的9位;n80286微处理器虽然仍为16位的标志寄存器,但定义 的标志位已从原来的9位增加到12位(新增加了3个标 志位); n80386及更高型号的微处理器则采用32位的标志寄存 器EFLAGS,所定义的标志位也有相应的扩充。.ID VIPVIF AC VM RFNTIOPODAPC31 21 20 19 18 17 16 15 14 13 12 11 10 98765432101IOP 0ITSZPentium / Pentium II80486SX / 80486DX80386DX802868086 / 8088图6.4 80x86 / 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)为控制 标志。 状态标志反映微处理器的工作状态,如执行加法运 算时是否产生进位,执行减法运算时是否产生借位 ,运算结果是否为零等; 控制标志对微处理器
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号