《微型计算机基本原理与应用》课件第3章 微处理器的编程结构.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《微型计算机基本原理与应用》课件第3章 微处理器的编程结构.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机基本原理与应用 微型计算机基本原理与应用课件第3章 微处理器的编程结构 微型计算机 基本原理 应用 课件 微处理器 编程 结构
- 资源描述:
-
1、 第第3 3章章 微处理器的编程结构微处理器的编程结构本章主要内容本章主要内容(1)微处理器的工作模式)微处理器的工作模式(2)微处理器的编程结构)微处理器的编程结构(3)实模式下的存储器寻址)实模式下的存储器寻址(4)堆栈的结构与操作)堆栈的结构与操作3.0 引言引言nMoore定律:定律:“晶体管的大小将以指数速率变小,而集成到晶体管的大小将以指数速率变小,而集成到芯片上的晶体管数目将芯片上的晶体管数目将23年年【1824个月个月】翻一番。翻一番。”Gordon Moore,1965n*Gordon MooreIntel公司的创始人,著名公司的创始人,著名半导体科学家。半导体科学家。197
2、8年年 8086 2.9万万(晶体管数)(晶体管数)1982年年 80286 13.5万万1985年年 80386 32万万1990年年 80486 120万万1993年年 Pentium 320万万1996年年 Pentium Pro 550万万1997年年 Pentium II 750万,万,300MHz1999年年 Pentium III 2000年年 Pentium IV 4200万万 1.4GHz2000年后年后 Itanium 2 2.14亿亿 nBBill Gates在在未来之路未来之路(The road ahead)中曾提到,假若中曾提到,假若Moore定律能再持续定律能再持续
3、20年年.n其其有人预测:有人预测:“微电子器件的发展速度预计一直到微电子器件的发展速度预计一直到2121世纪前期仍将遵循摩尔定律世纪前期仍将遵循摩尔定律”n*此外,人们也在关心其他新型技术,如激光此外,人们也在关心其他新型技术,如激光计算机、量子计算机等新技术的发展。计算机、量子计算机等新技术的发展。n从从*在计算机结构及信息理论方面,在计算机结构及信息理论方面,“非冯结构非冯结构”-(神经网络仿人脑的思维和记忆模型),更便(神经网络仿人脑的思维和记忆模型),更便于处理某些智能型问题。于处理某些智能型问题。4004 微处理器(微处理器(1971,2250晶体管,晶体管,4.2mmx3.2mm
4、,世界上第一个微处理器),世界上第一个微处理器)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微米线宽,微米线
5、宽,328个寄存器,个寄存器,8级流水,系统总线宽度级流水,系统总线宽度128位,片内三级位,片内三级高速缓存高速缓存-32KB,256KB,3MB,参见参见P489)3.1 微处理器的工作模式微处理器的工作模式n(1)实模式)实模式n(2)保护模式)保护模式n(3)虚拟)虚拟8086模式模式3.1.1 实模式实模式(real mode)80286以上的微处理器所采用的以上的微处理器所采用的8086的工作模式。的工作模式。在实模式下,采用类似于在实模式下,采用类似于8086的体系结构,其寻址机制、的体系结构,其寻址机制、中断处理机制均和中断处理机制均和8086相同;相同;物理地址的形成也同物理
6、地址的形成也同8086一样:一样:将段寄存器的内容左移将段寄存器的内容左移四位再与偏移地址相加。四位再与偏移地址相加。寻址空间为寻址空间为1MB,并采用分段方式,每段大小为,并采用分段方式,每段大小为64KB(216);此外,在实模式下,存储器中保留两个专用区域,一个为初此外,在实模式下,存储器中保留两个专用区域,一个为初始化程序区:始化程序区:FFFF0HFFFFFH,存放进入,存放进入ROM引导程序引导程序的一条跳转指令;的一条跳转指令;另一个为中断向量表区:另一个为中断向量表区:00000H003FFH,在这,在这1K字节的字节的存储空间中存放存储空间中存放256个中断服务程序的入口地址
7、,每个入口个中断服务程序的入口地址,每个入口地址占地址占4个字节,这与个字节,这与8086的情形相同。的情形相同。实模式是实模式是80 x86处理器在加电或复位后立即出现的工作方处理器在加电或复位后立即出现的工作方式,即使是想让系统运行在保护模式,式,即使是想让系统运行在保护模式,系统初始化或引系统初始化或引导程序也需要在实模式下运行导程序也需要在实模式下运行,以便为保护模式所需要以便为保护模式所需要的数据结构做好各种配置和准备。的数据结构做好各种配置和准备。实模式是为建立保护模式做准备的工作模式。实模式是为建立保护模式做准备的工作模式。3.1.2 保护模式保护模式(protected mod
8、e)保护模式是支持多任务的工作模式。保护模式是支持多任务的工作模式。它提供了一系列的它提供了一系列的保护机制,保护机制,如任务地址空间的隔离,如任务地址空间的隔离,设置特权级设置特权级(03共共4个特权级个特权级),设置特权指令,进行设置特权指令,进行访问权限访问权限(如只读、只执行如只读、只执行)及段限检查等。及段限检查等。n80386以上的微处理器在保护模式下可以访问以上的微处理器在保护模式下可以访问4G字节的字节的物理存储空间物理存储空间,段的长度在启动分页功能时是,段的长度在启动分页功能时是4G字节,字节,不启动分页功能时是不启动分页功能时是1M字节,分页功能是可选的。字节,分页功能是
9、可选的。n在这种方式下,可以在这种方式下,可以引入虚拟存储器的概念引入虚拟存储器的概念,以扩充编,以扩充编程者所使用的地址空间。程者所使用的地址空间。3.1.3 虚拟虚拟8086模式模式(virtual 8086 mode)虚拟虚拟8086模式又称模式又称“V86模式模式”。它是既有保护功能又能执行它是既有保护功能又能执行8086代码的工作模式,是一种代码的工作模式,是一种动态工作模式。动态工作模式。在这种工作模式下,处理器能够迅速、反复进行在这种工作模式下,处理器能够迅速、反复进行V86模式和模式和保护模式之间的切换,从保护模式进入保护模式之间的切换,从保护模式进入V86模式执行模式执行80
10、86程程序,然后离开序,然后离开V86模式,进入保护模式继续执行原来的保护模式,进入保护模式继续执行原来的保护模式程序。模式程序。保护模式保护模式实模式实模式虚拟虚拟8086模式模式复位复位复位复位复位复位复位复位PE=1PE=0作业切换作业切换中断返回中断返回中断、异常中断、异常图注:图注:(1)PE保护模式允许,是保护模式允许,是80 x86控制寄存器控制寄存器CR0的一位的一位(2)异常异常80286以上的处理器中,称以上的处理器中,称“内部中断内部中断”为异常为异常(exception)图图3.2 三种工作模式的转换三种工作模式的转换3.2 微处理器的编程结构微处理器的编程结构 微处理
11、器的编程结构,即是在编程人员眼中看到的微微处理器的编程结构,即是在编程人员眼中看到的微处理器的软件结构模型。处理器的软件结构模型。软件结构模型便于人们从软件的视角去了解计算机系软件结构模型便于人们从软件的视角去了解计算机系统的操作和运行。统的操作和运行。从这一点上说,程序员可以不必知道微处理器内部极从这一点上说,程序员可以不必知道微处理器内部极其复杂的电路结构、电气连接或开关特性,也不需要其复杂的电路结构、电气连接或开关特性,也不需要知道各个引脚上的信号功能和动作过程。知道各个引脚上的信号功能和动作过程。对于编程人员来说,重要的是要了解微处理器所包含的对于编程人员来说,重要的是要了解微处理器所
12、包含的各种寄存器的功能、操作和限制,以及在程序设计中如各种寄存器的功能、操作和限制,以及在程序设计中如何使用它们。何使用它们。进一步,需要知道外部的存储器是如何组织的,处理器进一步,需要知道外部的存储器是如何组织的,处理器如何从存储器中取得指令和数据。如何从存储器中取得指令和数据。3.2.1 程序可见寄存器程序可见寄存器n程序可见程序可见(program visible)寄存器,寄存器,是指在应用程序设计时是指在应用程序设计时可以直接访问的寄存器。可以直接访问的寄存器。程序不可见程序不可见(program invisible)寄存器寄存器是指在应用程序设计是指在应用程序设计时不能直接访问,但在
13、进行系统程序设计时不能直接访问,但在进行系统程序设计(如编写操作系统如编写操作系统软件软件)时可以被间接引用或通过特权指令才能访问的寄存器。时可以被间接引用或通过特权指令才能访问的寄存器。在在80 x86微处理器系列中,通常在微处理器系列中,通常在80286及其以上的微处理及其以上的微处理器中才包含程序不可见寄存器,主要用于保护模式下存储器中才包含程序不可见寄存器,主要用于保护模式下存储系统的管理和控制。系统的管理和控制。3.2.2 80 x86/Pentium处理器的寄存器模型处理器的寄存器模型 图图3.3给出了给出了80 x86/Pentium微处理器的寄存器模型。它实际微处理器的寄存器模
14、型。它实际上是一个呈现在编程者面前的寄存器集合,所以也称上是一个呈现在编程者面前的寄存器集合,所以也称微处理微处理器的编程结构器的编程结构。GSFSSSESDSCSFLAGSIPDISIBPSPDLCLBLALDHCHBHAHEDXECXEBXEAXEDIESIEBPESPEFLAGSEIP31150DXCXBXAX图图3.3 80 x86/Pentium处理器的寄存器模型处理器的寄存器模型 白色区域白色区域:8086/8088,80286所具有的;所具有的;阴影区域:阴影区域:80386,80486及及Pentium 新增加的。新增加的。1.通用寄存器通用寄存器n通用寄存器也称多功能寄存器,
15、在图通用寄存器也称多功能寄存器,在图3.3所示的寄存器所示的寄存器模型中,共有模型中,共有8个通用寄存器,按它们的功能差别,又个通用寄存器,按它们的功能差别,又可分为两组,即:可分为两组,即:“通用数据寄存器通用数据寄存器”及及“指针寄存器指针寄存器和变址寄存器和变址寄存器”。n(1)通用数据寄存器通用数据寄存器n 通用数据寄存器用来存放通用数据寄存器用来存放8位、位、16位或位或32位的操作数。位的操作数。大多数算术运算和逻辑运算指令都可以使用这些寄存器。大多数算术运算和逻辑运算指令都可以使用这些寄存器。共有共有4个通用数据寄存器,它们是个通用数据寄存器,它们是EAX、EBX、ECX和和ED
16、X。nEAX(Accumulator,累加器,累加器):EAX可以作为可以作为32位寄存器位寄存器(EAX)、16位寄存器位寄存器(AX)或或8位寄存器位寄存器(AH或或AL)引用。引用。n如果作为如果作为8位或位或16位寄存器引用,则只改变位寄存器引用,则只改变32位寄存器的位寄存器的一部分,其余部分不受影响。当累加器用于乘法、除法一部分,其余部分不受影响。当累加器用于乘法、除法及一些调整指令时,它具有专门的用途,但通常仍称之及一些调整指令时,它具有专门的用途,但通常仍称之为通用寄存器。为通用寄存器。n在在80386及更高型号的微处理器中,及更高型号的微处理器中,EAX寄存器也可以用寄存器也
17、可以用来存放访问存储单元的偏移地址。来存放访问存储单元的偏移地址。nEBX(Base,基址,基址):EBX是个通用寄存器,它可以作为是个通用寄存器,它可以作为32位寄存器位寄存器(EBX)、16位寄存器位寄存器(BX)或或8位寄存器位寄存器(BH或或BL)引用。引用。n在在80 x86系列的各种型号微处理器中,均可以用系列的各种型号微处理器中,均可以用BX存放存放访问存储单元的偏移地址。访问存储单元的偏移地址。n在在80386及更高型号的微处理器中,及更高型号的微处理器中,EBX也可以用于存放也可以用于存放访问存储单元的偏移地址。访问存储单元的偏移地址。nECX(Count,计数,计数):EC
18、X是个通用寄存器,它可以作是个通用寄存器,它可以作为为32位寄存器位寄存器(ECX)、16位寄存器位寄存器(CX)或或8位寄存器位寄存器(CH或或CL)引用。引用。nECX可用来作为多种指令的计数值。用于计数的指令可用来作为多种指令的计数值。用于计数的指令是重复的串操作指令、移位指令、循环移位指令和是重复的串操作指令、移位指令、循环移位指令和LOOP/LOOPD指令。指令。n移位和循环移位指令用移位和循环移位指令用CL计数,重复的串操作指令用计数,重复的串操作指令用CX计数,计数,LOOP/LOOPD指令用指令用CX或或ECX计数。计数。n在在80386及更高型号的微处理器中,及更高型号的微处
19、理器中,ECX也可用来存放也可用来存放访问存储单元的偏移地址。访问存储单元的偏移地址。nEDX(Data,数据,数据):EDX是个通用寄存器,用于保存是个通用寄存器,用于保存乘法运算产生的部分积,或除法运算之前的部分被除乘法运算产生的部分积,或除法运算之前的部分被除数。数。n对于对于80386及更高型号的微处理器,这个寄存器也可用及更高型号的微处理器,这个寄存器也可用来寻址存储器数据。来寻址存储器数据。(2)指针寄存器和变址寄存器指针寄存器和变址寄存器n这是另外这是另外4个通用寄存器,分别是:堆栈指针寄存器个通用寄存器,分别是:堆栈指针寄存器ESP、基址指针寄存器基址指针寄存器EBP、源变址寄
20、存器、源变址寄存器ESI和目的变址寄和目的变址寄存器存器EDI。nESP(Stack Pointer,堆栈指针,堆栈指针):ESP寻址一个称为堆栈的寻址一个称为堆栈的存储区。通过这个指针存取堆栈存储器数据。存储区。通过这个指针存取堆栈存储器数据。n这个寄存器作为这个寄存器作为16位寄存器引用时,为位寄存器引用时,为SP;作为;作为32位寄存位寄存器引用时,则为器引用时,则为ESP。nEBP(Base Pointer,基址指针,基址指针):EBP用来存放访问堆栈段用来存放访问堆栈段的一个数据区的的一个数据区的“基地址基地址”。它作为。它作为16位寄存器引用时,位寄存器引用时,为为BP;作为;作为
21、32位寄存器引用时,则是位寄存器引用时,则是EBP。nESI(Source Index,源变址,源变址):ESI用于寻址串操作指令的用于寻址串操作指令的源数据串。它的另一个功能是作为源数据串。它的另一个功能是作为32位位(ESI)或或16位位(SI)的数据寄存器使用。的数据寄存器使用。nEDI(Destination Index,目的变址,目的变址):EDI用于寻址串操用于寻址串操作指令的目的数据串。如同作指令的目的数据串。如同ESI一样,一样,EDI也可用为也可用为32位位(EDI)或或16位位(DI)的数据寄存器使用。的数据寄存器使用。2.指令指针寄存器指令指针寄存器EIP(Instruc
22、tion Pointer)nEIP是一个专用寄存器,用于寻址当前需要取出的指令字节。是一个专用寄存器,用于寻址当前需要取出的指令字节。当当CPU从内存中取出一个指令字节后,从内存中取出一个指令字节后,EIP就自动加就自动加1,指向,指向下一指令字节。下一指令字节。n当微处理器工作在实模式下时,这个寄存器为当微处理器工作在实模式下时,这个寄存器为IP(16位位);当;当80386及更高型号的微处理器工作于及更高型号的微处理器工作于 保护模式下时,则是保护模式下时,则是EIP(32位位)。n程序员不能对程序员不能对EIP/IP进行存取操作进行存取操作。程序中的转移指令、返回。程序中的转移指令、返回
23、指令以及中断处理能对指令以及中断处理能对EIP/IP进行操作。进行操作。3.标志寄存器标志寄存器EFLAGSnEFLAGS用于指示微处理器的状态并控制它的操作。用于指示微处理器的状态并控制它的操作。n早期的早期的8086/8088微处理器的标志寄存器微处理器的标志寄存器FLAG为为16位,且只位,且只定义了其中的定义了其中的9位;位;n80286微处理器虽然仍为微处理器虽然仍为16位的标志寄存器,但定义的标志位的标志寄存器,但定义的标志位已从原来的位已从原来的9位增加到位增加到12位;位;n80386及更高型号的微处理器则采用及更高型号的微处理器则采用32位的标志寄存器位的标志寄存器EFLAG
24、S,所定义的标志位也有相应的扩充,所定义的标志位也有相应的扩充。.ID VIPVIF AC VM RFNTIOPODAPC31 21 20 19 18 17 16 15 14 13 12 11 10 98765432101IOP0ITSZPentium/Pentium II80486SX/80486DX80386DX802868086/8088图图3.4 80 x86/Pentium 全系列微处理器的标志寄存器全系列微处理器的标志寄存器 8086/8088系统中所定义的系统中所定义的9个标志位个标志位O、D、I、T、S、Z、A、P、C,这也是实模式下这也是实模式下80 x86/Pentium系
25、列微处理系列微处理器所使用的标志位。器所使用的标志位。在这在这9个标志位中,有个标志位中,有6位位(即即CF、PF、AF、ZF、SF和和OF)为状态标志;其余为状态标志;其余3位位(即即TF、IF和和DF)为控制标志。为控制标志。状态标志状态标志反映微处理器的工作状态,如执行加法运算反映微处理器的工作状态,如执行加法运算时是否产生进位,执行减法运算时是否产生借位,运时是否产生进位,执行减法运算时是否产生借位,运算结果是否为零等;算结果是否为零等;控制标志控制标志对微处理器的运行起特定的控制作用,如以对微处理器的运行起特定的控制作用,如以单步方式运行还是以连续方式运行,在程序执行过程单步方式运行
展开阅读全文