收藏 分销(赏)

计算机硬件技术基础第三版.ppt

上传人:人****来 文档编号:5903560 上传时间:2024-11-23 格式:PPT 页数:399 大小:9.02MB
下载 相关 举报
计算机硬件技术基础第三版.ppt_第1页
第1页 / 共399页
计算机硬件技术基础第三版.ppt_第2页
第2页 / 共399页
计算机硬件技术基础第三版.ppt_第3页
第3页 / 共399页
计算机硬件技术基础第三版.ppt_第4页
第4页 / 共399页
计算机硬件技术基础第三版.ppt_第5页
第5页 / 共399页
点击查看更多>>
资源描述

1、,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第

2、五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机硬件技术基础,课件使用说明:,1、所用计算机上应装载有flash软件

3、或插件,本课件的动画要用。,2、单击课件上的箭头按钮,则启动动画操作。,3、单击课件上的方块按钮,则停止动画操作。,二者可随时进行交换操作。,第2章,16位微处理器,2.1,8086/8088,内部寄存器,8086寄存器组又称为,8086的程序设计模型,它是程序设计中惟一可见的CPU部件,它是系统程序设计员的操作对象,含14个16位寄存器,按功能可分为三类:,通用寄存器,8个,段寄存器,4个,控制寄存器,2个,8086/8088,寄存器,SP,IP,FLAGS,AH,AL,BH,BL,CH,CL,DH,DL,AX,BX,CX,DX,BP,SI,DI,CS,DS,ES,SS,通用寄存器,控制寄存

4、器,段寄存器,16位,16位,1、通用寄存器,数据寄存器(AX,BX,CX,DX),地址指针寄存器(SP,BP),变址寄存器(SI,DI),地址指针寄存器,SP:堆栈指针寄存器,其内容为堆栈栈顶的偏移地址;,任何堆栈操作后,SP都会自动增/减量。,BP:基址指针寄存器,在,间接寻址,中用于存放操作数的基地址;,常用于访问存放在堆栈中的数据。,变址寄存器,SI:源变址寄存器,用于访问源操作数,DI:目标变址寄存器,用于访问目的操作数,常用于操作数的,间接寻址,或,变址寻址,。,在串操作指令中,SI存放源操作数的偏移地址,而DI存放目标操作数的偏移地址。,二、段寄存器,用于存放逻辑段的段基地址(简

5、称段地址),CS:代码段寄存器。代码段存放指令代码,DS:数据段寄存器,ES:附加段寄存器,SS:堆栈段寄存器:指示堆栈区域的位置,这两个段存放操作数,堆栈段,SS,数据段,DS/ES,代码段,CS,三、控制寄存器,IP:指令指针寄存器,其内容为下一条要执行的指令的偏移地址。,FLAGS:标志寄存器,存放指令执行结果的特征:,有些指令(如算术指令)要改变FLAGS的内容(影响FLAGS);,有些指令对FLAGS无影响。,6个状态标志位(CF,SF,AF,PF,OF,ZF),3个控制标志位(IF,TF,DF),O,D,I,T,S,Z,A,P,C,15,0,2,4,6,7,8,9,10,11,FL

6、AGS,2.2,8086CPU,的功能结构,8086内部由两部分组成:,执行单元(EU),总线接口单元(BIU),总线接口部件,功能:,从内存中取指令到指令预取队列IPQ;,负责与内存或I/O接口之间的数据传送;,在执行转移指令时,BIU将清除IPQ,然后从转移的目的地址处开始取指令并重新填充IPQ。,执行部件,功能:执行指令,具体操作如下,从IPQ中取指令代码,译码,完成指定的操作,结果保存到目的操作数,运算特征保存在标志寄存器FLAGS(仅对影响标志的指令),8086操作方式比较,取指令,指令译码,取操作数,执行指令,存放结果,CPU执行一条指令的过程类似于工厂生产流水线,被分,解为多个小

7、的步骤,称为指令流水线。,原料,调度分配,生产线,成品,仓库,出厂,数据和程序指令,控制器的调度分配,ALU等 功能部件,处理后的数据,存储器,输出,2.3 8086操作模式及引脚信号,一.8086两种工作模式:,最小模式和最大模式,最小模式不支持8087。存储器和I/O控制信号全部由CPU产生。,最大模式支持8087。CPU的部分信号线被用作8087的控制,因此需要由8288总线控制器来产生这些控制信号。,最小模式下的连接示意图,8086,CPU,控制总线,数据总线,地址总线,地址,锁存器,数据总线,缓冲器,ALE,时钟发,生 器,8284A,地址/数据,8286,8282,Vcc,MN/M

8、X,DEN,DT/R,最大模式下的连接示意图,8088,CPU,数据总线,地址总线,地址,锁存器,数据总线缓冲器,时钟发,生 器,总 线,控制器,控制总线,8284A,8288,ALE,CLK,MN/MX,8282,8286,GND,二、,8086CPU,的引线及功能,引脚定义方法大致分为:,每个引脚只传送一种信息(如RD),电平的高低代表不同的含义(如M/IO),在不同模式下有不同的名称和定义(如WR/LOCK),分时复用引脚(如AD,15,AD,0,),引脚的输入、输出分别传送不同的信息(如RQ/GT,0,),最小模式下的主要引线,MN/MX,工作模式控制,=0(接地):工作于最大模式;,

9、=1(接Vcc):工作于最小模式。,最小模式下的主要引线,地址总线、数据总线:,AD15AD0:三态,地址/数据复用引脚。ALE=1时作为地址线A16,A0,,ALE=0时作为数据线D16,D0,。,传送地址时为输出,传送数据时为双向。,A19-A16/S6-S3:输出,三态,地址/状态复用引脚,。ALE=1时作为地址线A19,A16,,ALE=0时作为控制信号。,最小模式下的主要引线,控制信号:,WR:输出,三态,写选通信号,表示CPU正在写数据到MEM或I/O设备。,RD:输出,三态,读信号,表示CPU正在从总线上读来自于MEM或I/O设备的数据。,M/IO:输出,三态,区分是读写存储器还

10、是读写I/O端口(即地址总线上的地址是存储器地址还是I/O端口地址)。,最小模式下的主要引线,DEN,:输出,三态,数据总线允许信号。用来打开外部数据总线缓冲器。,DT,/,R,:输出,三态,表明CPU正在传送还是接收数据,用作外部数据总线缓冲器的方向控制;,ALE,:输出,地址锁存允许信号,表示地址/数据总线上传输的是地址信号。,最小模式下的主要引线,RESET,:输入,复位信号,保持4个以上时钟周期的高电平时将引起CPU进入复位过程(IF清0,并从存储单元FFFF0H开始执行指令);,BHE/S7,:输出,高8位数据总线允许。在读/写操作期间允许,高8位数据总线D16,D8,有效(即读/写

11、数据的高8位)。,READY,:输入,准备就绪。用于与存储器或I/O接口的同步。,=0时CPU进入等待状态(插入1个或多个等待周期)。,中断请求和响应信号,INTR:输入,可屏蔽中断请求输入端,CPU要检查IF状态,NMI:输入,非屏蔽中断请求输入端,CPU不检查IF状态,INTA:输出,中断响应信号,表示CPU已进入中断响应周期。,此信号常用来选通中断向量号。,2.4 8086/8088,存储器组织,8086可访问1MB的存储空间(,为什么?,),哪个寄存器能够放得下20位的地址?,用,分段,的方法解决。,段是存储器中的一块区域,段起始于存储器内16字节整倍数的边界处。,段首地址的最低4位一

12、定为0,用,段,和,偏移,的组合访问存储单元,每个段最大为64KB,最小为16B(,为什么?,),所有存储单元的地址都由段地址加偏移地址组成,段地址被装入段寄存器中以供寻址使用,偏移地址用于在64KB存储器段内选择任一单元,段和偏移,设段起始地址=60000H,段地址,偏移地址,0FFFFH,6A000H,12H,60000H,6 0 0 0,段寄存器,偏移地址A000H,0 0 0 0,段地址(16位),段起始地址,物理地址和逻辑地址,物理地址:存储单元的硬件地址,物理地址=段地址16(或段地址左移4位)+偏移地址,逻辑地址:,段和偏移形式的地址,逻辑地址用于汇编语言程序设计,以下地址都是逻

13、辑地址的例子:,2500H:0100H,段地址A000H,偏移地址0001H,例1,已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,数据段中某操作数偏移地址=0204H,各段首地址=?,画出各段在内存中的分布,该操作数的物理地址=?,这个例子说明:,段与段可以不连续,段之间可以重叠,10550H,250A0H,2EF00H,8FF00H,DS段,ES段,SS段,CS段,默认段和偏移寄存器,8086规定了访问存储器段的规则:,此规则定义了段地址寄存器和偏移地址寄存器的组合方式,其默认规则如下表:,段地址,默认偏移地址,用于访问,CS,IP,指令,SS,SP、BP,堆栈

14、中的数据,DS,BX、DI、SI、8位或16位数,数据段中的数据,ES,串指令的DI,目标串操作数,25 80868088的不足,微机技术与时俱进,现在已经进入了64位双核的微处理器时代。,8086之所以被历史淘汰,是因为其性能与现在微处理器相比相形见绌,主要表现在以下几个方面。,1存储器容量小,2时钟频率低,3计算精度低,4技术含量低,5存取速度低,本教材下面几章将要描述的是32位微处理器上配备的技术,其主要目的为读者领略微机领域内的先进技术,跟上世界微机领域内的先进水平。,第 3 章,32位微处理器,本章知识要点:,本章以32位的Pentium为平台,站在微处理器芯片整体结构角度,把构成C

15、PU的诸如寄存器组、总线接口部件、存储管理部件、分支转移缓冲存储器、控制部件、预取缓冲部件、指令译码部件、整数部件、浮点部件等各部件的结构、功能、工作原理,以及Pentium所采用的超标量执行技术、分支转移预测技术、流水线操作技术、浮点部件、浮点流水线操作等先进技术进行了描述。,本章内容是微机知识的核心、是重点、难点所在,通过本章的学习,读者得到是系统、先进的微机知识。,31 CISC和RISC,1 复杂指令系统计算机CISC,每一种微处理器的CPU都有属于它自己的指令系统。CPU正是通过执行一系列的特定的指令来实现应用程序的某种功能。像Intel x86系列,为了增加新的功能,就必须增加新的

16、指令;另一方面,为了保持向上兼容,又必须保留原有的指令。每条指令又有若干个不同的操作字段,用来说明要操作的数据类型,以及存放的位置。这就意味着一个较大的指令系统和复杂的寻址技术。以这样的微处理器为平台的计算机系统就是,“,复杂指令系统计算机,”,(CISC)。,CISC也有许多优点,如指令经编译后生成的指令程序较小执行起来较快,节省硬件资源。像存取指令的次数少,占用较少的存储器等。,2.精简指令系统计算机RISC,“精简指令系统计算机”(RISC)的核心思想,是通过简化指令来使计算机的结构更加简单、合理,从而提高CPU的运算速度。解决途径就是减少微处理器指令总数和减少指令操作的时钟周期数。经过

17、当时的技术比较测试表明,处于同样工艺水平的芯片,RISC的运行速度是CISC运行速度的3-5倍。,特征:,(1)每个计算机周期执行一条指令,(2)进行的是寄存器与寄存器之间的操作,(3)寻址方式简单,(4)指令格式简单,32 Pentium 体系结构,321Pentium寄存器,Pentium配备的寄存器按类可分为如下几类:,(1)基本体系结构寄存器:,通用寄存器;,指令指针寄存器;,标志寄存器;,段寄存器;,(2)系统级寄存器:,系统寄存器;,系统地址寄存器;,(),调试和测试寄存器:,(),浮点寄存器:,浮点寄存器包括:数据寄存器;标记字寄存器;,状态字寄存器;指令和数据指针寄存器;,控制

18、字寄存器;,AX,BX,CX,DX,BP,SI,DI,SP,EAX,EBX,ECX,EDX,EBP,ESI,EDI,ESP,累加寄存器,基址寄存器,计数寄存器,数据寄存器,基地址指针寄存器,源变址寄存器,目标变址寄存器,堆栈指针寄存器,32位寄存器名称,中间是16位寄存器名称,AH,B,H,C,H,D,H,A,L,BL,CL,DL,斜体表示8位寄存器名称,16,31,15,0,7,8,通用寄存器,代码段寄存器CS,堆栈段寄存器SS,数据段寄存器 DS,附加数据段寄存器 ES,附加数据段寄存器 FS,附加数据段寄存器 GS,段寄存器,代码段寄存器 CS,堆栈段寄存器 SS,0,15,31,0,标

19、志寄存器 FLAGS,指令指针寄存器 IP,标志和指令指针寄存器,注:图中的深色部分表明,只有32位的80386、80486,Pentium微处理器,才配备有、且可以用这些32位的寄存器。,基本体系结构寄存器,(1)通用寄存器,8个通用寄存器也可以称之为多功能寄存器,它们全部是32位寄存器,而且用户可以随意使用这8个32位通用寄存器。在这些寄存器内存放着逻辑操作和算术运算用的操作数,除堆栈指针寄存器ESP不能作为变址寄存器使用外,其余七个通用寄存器在进行地址计算时都可用来存放参与运算的操作数。,()段寄存器,Pentium器配备有6个16位的段寄存器,他们分别是:,代码段寄存器CS、数据段寄存

20、器DS、,堆栈段寄存器SS、附加数据段寄存器ES、,附加数据段寄存器FS、附加数据段寄存器GS。,这6个段寄存器与80386的6个段寄存器同宗、同名、同功能。段寄存器的另一种称呼叫段选择符,也有的称其为段选择子。,(),标志寄存器,Pentium标志寄存器的作用是用来存放有关Pentium的状态标志信息、控制标志信息以及系统标志信息。各条件码(例如进位、符号、溢出)及方式位均存放在的标志寄存器EFLAGS中,如图所示。,标志寄存器中这些标志不仅控制着微处理器的某些操作,且随时随地的指示出微处理器的状态。标志寄存器内不仅有状态和控制标志,而且还有几位是系统标志位。状态标志位用S表示,控制标志位用

21、C表示,系统标志位用表示。,()指令指针寄存器,指令指针寄存器EIP内保存有当前代码段中下一条要执行指令的偏移量。指令指针寄存器不直接供程序员使用,它由控制转移指令(转移、返回等指令)、中断及异常隐含地进行控制。,3系统级寄存器,()系统地址寄存器,全局描述符表寄存器GDTR,中断描述符表寄存器IDTR,局部描述符表寄存器LDTR,任务寄存器TR,全局描述符寄存器,中断描述符寄存器,选择符,选择符,32位线性基地址,32位线性基地址,32位段界限,属性,界限,GDTR,IDTR,LDTR,TR,16 15,0,47,15,0,系统段寄器,描述符寄存器(自动装入),(2)控制寄存器,Pentiu

22、m由于控制管理的需要,又配备了5个控制寄存器。CR0、CR1、CR2、CR3和CR4。,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,页 故 障 线 性 地 址 寄 存 器,保 留,V,M,E,PVI,TSD,P,S,E,M,CE,DE,0,PWT,PCD,0,1,2,3,4,5,6,7,31,CR4,CR3,CR2,CR1,0,3,4,12 11,31,16 15,16 15,31,31,0,0,控制寄存器CR0,CR0,不写贯穿,禁止Cache,允许分页,PE,MP,EM,TS,ET,NE,WP,AM,NW,CD,PG,对准屏蔽,写保护

23、,数值错,扩展类型,任务切换,模拟浮点部件,监控浮点部件,允许保护,控制寄存器CR1:,Pentium微处理器的CR1控制寄存器没有定义,供将来用。,控制寄存器CR2:,Pentium的CR2控制寄存器内保存的是页故障线性地址。,控制寄存器CR3:,Pentium的CR3控制寄存器是页目录基地址寄存器,保存着页目录表的物理基地址。,控制寄存器CR4,较之80386、80486微处理器,Pentium又新配备了一个CR4控制寄存器。其内共设置了6个控制位。其目的是用来扩展Pentium的某些体系结构。,322Pentium 体系结构,Pentium是由总线接口部件(64位的)、,存储管理部件(分

24、段、分页管理部件)、,指令Cache、数据Cache、,分支转移目标缓冲存储器、,控制ROM部件、控制部件、,预取缓冲部件、指令译码部件、,整数运算部件、整数及浮点数寄存器组、浮点运算部件等功能组成。,()总线接口部件,总线接口部件与片内Cache外部总线接口实行的是逻辑接口连接。当访问Cache出现没命中、或需更改系统存储器内容、或需向Cache写入某些信息时,就要通过总线接口从外部存储器系统中取出一批数据。,(,),预取缓冲部件,取指令是指从高速缓冲存储器Cache内或从内存储器中取出指令代码,以备译码之用的操作。,(),指令译码部件,译码操作,,一是检查一条指令的格式,,二是确定它是哪种

25、类型操作的指令,并给出这条指令所需的操作数。,(),控制部件,Pentium微处理器控制部件的作用是,负责解释来自指令译码部件的指令字和控制ROM的微代码。控制部件的输出控制着整数流水线部件和浮点部件。,(5),执行部件,是微处理器用于执行指令所规定的具体操作的CPU的核心硬件部分。这些非常具体的操作是指诸如数值运算、逻辑操作以及分支转移处理等。,(6),分段部件,Pentium的存储管理是采用了分段存储管理技术和分页存储管理技术实现的。,所谓段,就是一个被保护的独立的Pentium使用的存储器内的存储空间。,分段部件的功能是,将由程序提供的逻辑地址转换成一种线性地址。,(7),分页部件,Pe

26、ntium微处理器的分页存储管理部件,在整个存储管理系统内采用的是二级分页管理机制。,使用分页部件可以使程序能够访问比实际存储空间大很多的数据结构,所采用的手段就是将这种大数据结构的一部分保存在主存储器之内,而另一部分则保存在磁盘上的分页技术。,3.,3,Pentium 采用的新技术,1.超标量执行,超标量是指那种拥有多条指令流水线,并在每个时钟周期中可执行一条以上的指令(在理想情况下)的微处理器处理指令的操作方式。,Pentium的超标量体系结构,配备有三条流水线,一条是执行浮点指令的浮点部件内的浮点流水线,而另两条则是整数运算部件内执行整数指令的U流水线和V流水线。这样就使得Pentium

27、拥有了可同时执行3条指令的能力。,控制字译码,生成存储器地址,控制字译码,生成存储器地址,访问数据Cache,或ALU计算,访问数据Cache,或ALU计算,写结果,写结果,取指令且对准,指令译码,生成控制字,PF,D1,D2,EX,WB,V流水线,U流水线,超标量执行,2 分支转移预测技术,分支转移预测和推测执行技术,采用分支转移预测和动态推测执行的主要目的,是为了提高CPU的运行速度。推测执行是建立在分支 转移预测基础上的一项技术。,推测执行是指允许CPU去处理那些不一定总能被执行的指令,例如,跳过条件的分支转移。在经分支转移预测程序预测判断之后,决定是否进行分支转移,接下来所要进行的处理

28、就是推测执行。,2.分支转移预测判断,为了支持在Pentium内采用的分支转移预测新技术,芯片内装备有两个预取缓冲存储器,一个是以线性方式来预取代码,另一个则是根据分支转移目标缓冲器(BTB)预取代码。这样就可以保证在执行之前将所需用的指令从存储器预取出来。,由于Pentium采用了这项技术,可以在无延迟的情况下正确地预测各种转移。另外,V流水线中的条件转移指令可以与一条比较类指令成对执行,当然也可以与U流水线中的置标志指令配合执行。但Pentium作到了与现有软件是完全兼容,所以不必修改现有软件。,3 流水线技术,流水线操作(Pipeline),类似于大工业生产的“装配线”设计,Pentiu

29、m微处理器的流水线操作是指把指令的操作处理分解成许多更小的操作步骤或操作阶段,每个操作步骤或操作阶段都由各自独立的电路来实现的。,当一条指 令执行完了一个操作步骤之后,它就按顺序进入到流水线操作的下一个操作步骤,而前一个操作步骤则会继续处理后续的指令。,2.Pentium整数流水线,Pentium的整数流水线操作是由,预取PF,、,首次译码D1、,二次译码D2、,执行EX、,写回WB,共五个操作步骤组成。,非流水线操作,为了更好地说明流水线操作技术,以及更好地认识流水线操作的技术进步,先从非流水线操作认识起,当一条指令在执行的过程之中时,其他指令则要眼吧吧地看着这条指令的执行,等待着这条指令的

30、完成。只有前一条指令经历了这五个操作步骤,完成了这条指令的操作,下一条指令才可得以进入指令的执行,同样又是五个时钟周期时间,同样又是其他指令的等待。这种非流水线操作方式并没有把计算机执行的时间资源有效地利用起来,指令流水线操作,Pentium整数指令的执行要经过指令预取PF、指令首次译码 D1、二次译码D2、指令执行EX和写回WB这五个操作步骤。在流水线内会有5条指令同时执行。,指令流水线操作,Pentium是一种能够以并行方式同时执行两条指令的超标量机器。两条指令按照流水线操作的5个操作步骤以并行方式执行操作,使整数指令能够在一个时钟里,在两条流水线上同时执行,指令配对规则,Pentium微

31、处理器每个时钟可以发出一条或两条指令。要同时发出两条指令,必须满足下列配对规则:,配对两条指令必须是所谓的“简单”指令;,两条指令之间不得存在“写后读”或“写后写”这样的寄存器相关性;,一条指令不能同时既包含位移量又包含立即数;,带前缀(JCC指令的OF除外)的指令只能出现在U流水线中。,依赖性或相关性是指,只有当一条指令执行完毕之后,才允许另一条指令执行的一个条件。,3.4,Pentium 操作模式,Pentium有两种主要的操作模式及一种“系统管理模式”。操作模式决定可使用哪些指令及体系结构特性。这些模式如下:,(1)保护模式,这是微处理器的本机状态,在这个模式下所有指令及体系结构特性均可

32、以使用。,(,2)实地址模式(也称实模式),这种模式提供了8086的程序设计环境,并有一些扩展功能(如退出该模式,复位时把处理器置于实模式,也可以通过一条指令使处理器切换到保护模式。,(3)系统管理模式,Pentium还支持系统存储管理模式(SMM),SMM是所有新的Intel微处理器(从80386开始)所特有的一种标准体系结构特性。,3.5 浮点部件,Pentium 通过芯片内的浮点部件把浮点技术表现得淋漓尽致,由于Pentium 微处理器把浮点部件与整数部件、分段部件、分页部件等都集成到同一芯片之内,而且执行的是流水线操作方式。把整个浮点部件设计成每个时钟周期都能够进行一次浮点操作,每个时

33、钟周期可以接受两条浮点指令,但是其中的一条浮点指令必须是交换类的指令。,对程序设计人员来说,可把Pentium芯片内的浮点部件FPU看成是一组辅助寄存器,是数据类型的扩展;还可以把浮点部件的指令系统看成是Pentium指令系统的一个子集。,Pentium 的浮点部件是在80486浮点部件的基础上重新设计而成。其整体性能比80486性能会高出5倍之多,。,351 浮点部件体系结构,1 数值寄存器,Pentium浮点部件的数值寄存器是由8个80位的数值寄存器、三个16位的寄存器等构成。其中,这8个80位的能各自独立进行寻址的数值寄存器,又可用来构成一个寄存器堆栈。,0,64 63,78,79,1

34、0,标志字段,R7,R6,R5,R4,R3,R2,R1,R0,符号,有效数位,指 数,而3个16位的寄存器分别称之为浮点部件FPU的状态字寄存器、浮点部件控制字寄存器和标记字寄存器。,15,0,控制字寄存器,状态字寄存器,标记字寄存器,2状态字寄存器,Pentium 片内浮点部件状态字寄存器内容反映的是浮点部件的全部状态和环境。根据其作用状态字又可以进一步细分成两个字段:一个是异常事故标志字段,另一个则是状态位字段。首先用一条存放在存储器中的浮点操作指令检查状态字,然后再使用Pentium 指令代码再检查各位状态。,条件码,栈顶指针,浮点部件正忙,无效操作事故,非规格式化操作数,除数为零,溢出

35、标志,下溢事故,精度事故,堆栈故障异常,概括出错状态,IE,DE,ZE,OE,UE,PE,SF,ES,C0,C1,C2,C3,B,TOP,0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,3 控制字寄存器,控制字内包括有事故屏蔽,允许中断屏蔽以及若干控制位。图中示出了控制字格式以及各字段的意义。,精度操作,圆整操作,保留,无效操作,非规格式化操作数,除数为零,上溢,下溢,精度,异常事故屏蔽,保留,IM,DM,ZM,OM,UM,PM,R,X,C,P,C,X,0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,12,X,X,X,X,(无穷大控制),4标记字寄存

36、器,标记字的功能优化了浮点部件的性能,图中展示出标记字各字段,从图中可以看出,标记字是由八个字段构成,每个字段长度均为两位,分别用来标志 八个数据寄存器。,TAG(0),TAG(1),TAG(2),TAG(3),TAG(4),TAG(5),TAG(6),TAG(7),1 0,3 2,5 4,7 6,9 8,11 10,13 12,15 14,3.5.2 浮点部件流水线操作,1Pentium浮点流水线,Pentium的浮点部件则是在80486的基础上重新进行了设计。它所采用的快速算法可以使诸如加法、乘法以及装入这样的常用操作速度提高了10倍。,(1)浮点流水线操作,Pentium 浮点流水线是由

37、预取PF、首次译码D1、二次译码D2、存储器和寄存器的读操作EX、首次执行X1、二次执行X2、写浮点数WF和出错报告ER共八个操作步骤组成。,其中预取PF和首次译码D1这两个操作步骤与整数流水线中的前两个操作步骤公用同一硬件资源。而浮点流水线中的第三个操作步骤是开始激活浮点指令的执行逻辑,其实浮点流水线中的前五个操作步骤与整数流水线中的五个操作步骤是同步执行的,只是多出了三个步骤而已。,浮点部件中的这八个操作步骤:,PF 预取,D1 指令译码(首次译码),D2 地址生成(二次译码),EX 存储器和寄存器的读操作,将浮点数据转换成外部存储格式且还要执行存储器的写操作。,X1 浮点执行步骤1(首次

38、执行);,将外部存储器数据格式转换成内部浮点数据格式,并且还要把操作数写到浮点寄存器上。,X2 浮点执行步骤2(二次执行);,WF 写浮点数,完成舍入操作,并且把计算后的浮点结果,写到浮点寄存器(此时可进行旁路2操作)。,ER 报告出现的错误/更新状态字的状态。,第 4 章,指令系统,41 指令格式,411 指令格式,指令是由许多部分组成的,在构成指令的这几部分中,只有操作码部分是必需存在的。其余各部分则要根据指令操作所涉及的操作数类型、以及操作数存放在何处等因素决定取舍。,任何一条机器指令都是由一组二进制代码构成,通常又被进一步分成操作码部分和地址码部分,一般的指令格式如图所示。,操作码 地

39、址码,808680286是16位的微处理器,16位的指令格式如图所示。,操作码 MOD-REG-R/M 位移量 立即数,12字节 01字节 01字节 02字节,Pentium(32位)指令的一般格式如图所示;。,由图可知,一条指令是由可任选的指令前缀(可以以任何的次序)、一个或两个原操作码字节、有可能要用的地址说明符(由ModR/M字节和按比例变址基地址SIB字节构成)、一个位移量(根据需要)和一个立即操作数数据字段(如果需要的话)等元素组成的。Pentium的所有指令都是如图所示的指令格式的子集,指令前缀,指令,段的超前前缀,0或1字节,地址大小前缀,0或1字节,操作数大小前缀,0或1字节,

40、指令前缀,0或1字节,立即数,0,1,2或4字节,位移量,0,1,2或4字节,操作码,1或2 字节,Mod R/M,0或1 字节,SIB,0或1字节,Mod Reg/OPcode R/M,7 6 5 4 3 2 1 0,SS Index Base,7 6 5 4 3 2 1 0,1指令前缀,指令前缀是置于指令前面的一个或多个字节,它的作用是用来修改指令的操作。下面所列出的这四个指令前缀就是供应用程序使用的。,(1)指令前缀:,(2)段的超前前缀:,(3)操作数大小前缀:,(4)地址大小前缀:,2指令中各字段意义,(1)操作码字段,(2)Mod R/M字段,(3)SIB字段,(4)偏移量,(5)

41、立即数,42 寻址方式,寻址方式是指微处理器获取操作数的方式。一条指令必须说明两个问题;一是要说明这条指令要进行什么操作,二是要说明这条指令的操作数位于何地。一条指令可以对零个或多个操作数操作。零个操作数的指令的例子是NOP指令(即没有数)。操作数可以位于下列位置处:,(1)指令本身有操作数;即立即操作数,(2)操作数在寄存器中;,(3)操作数在存储器中,(4)操作数在/端口,421 常用寻址方式,1,立即操作数寻址,是说指令本身带的数据作为一个操作数用,即指令所用的操作数是指令自身所拥有的,像单操作数指令或两操作数指令即是这类指令。凡指令本身所拥有的操作数就称之为立即操作数。,例如,MOV

42、AX,1999H ;这条指令的功能是将16进制的立即操作数1999传送到AX寄存器。由于立即操作数1999是16位的,其中存放在代码段的高地址字节中的内容被传送到AH寄存器,低地址字节中的内容被传送到AL寄存器,如图所示。,存储器,操作码,19H,19H,99H,99H,AH,AL,代码段,指令,1350H,1351H,1380H,1381H,2.寄存器操作数寻址,将操作数存放在32位通用寄存器中,或存放在16位通用寄存器中,或存放在8位通用寄存器中,并对操作数进行访问操作,称之为寄存器操作数寻址。指令 MOV EDX,EAX ;,MOV EDX,EAX,源操作数,目标操作数,EAX,EBX,

43、ECX,EDX,1 3 9 A,1 3 9 A,D 4 0 7,D 4 0 7,1 1 0 0,2 2 3 3,9 9 9 9,9 9 9 9,3 存储器操作数寻址,(1)直接寻址,直接寻址是一种很简单的寻址方式,虽然操作数存放在存储器内,但在这种直接寻址方式下,操作数的有效地址是由指令直接给出。例如:,MOV EAX,LISTT,这条指令的功能是,将地址LISTT处4个连续字节地址中的32位操作数传送到寄存器EAX内。LISTT 是存储器中存储单元的符号地址,LISTT的实际地址是1230H这个十六进制地址,1230H,1231H,1232H,1233H,80,6A,38,BC,8 0 3

44、8 6 A B C,EAX,存储器,(2)寄存器间接寻址,寄存器间接寻址这种寻址方式,可以对存储器内的任何存储单元的数据进行寻址,只是要借助于在BP,BX,DI和SI这些寄存器内保存的偏移地址。,例,如果寄存器BX的内容是1000H,在执行MOV AX,BX指令之后,地址1000H处的字内容被传送到AX寄存器中,如图所示。,1000H,1001H,1002H,1003H,89,A3,35,D4,存储器,A3 D4,10 00,EAX,EBX,(3)基地址加变址寻址,所谓基地址加变址寻址,就是操作数位于所选的存储器段内,操作数的有效地址由一个基地址寄存器的内容再加上一个变址寄存器的内容构成。,通

45、常,在基地址寄存器内保存的是位于存储器内数组的起始地址,而在变址寄存器内保存的是数组元素的相对位置。每次BP寄存器在对存储器内的数组进行寻址时,由BP寄存器和堆栈段寄存器两者生成有效地址。,例如:MOV EDX,EAX+EBX,存储器,+,EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,1 0,0 A,A B,8 9,2 0,0 0,8 9,100AH,0020H,102AH,102AH,1029H,102BH,1028H,102CH,1027H,1026H,A B,(4)寄存器相对寻址,寄存器相对寻址类似于基址加变址寻址,只不过是在寄存器相对寻址方式下,在变址寄存器或基地址寄

46、存器的内容中,加上了一个位移量,而形成了操作数的有效地址的值,然后是用这个有效地址的值,对存储器中的操作数进行寻址。,操作数的有效地址是由基地址或变址寄存器的内容再加上一个8位数值、16位数值或32位数值的位移量组成。,例如:MOV EAX,ECX+1AH,指令是,将数据段中由ECX寄存器上的内容,再加上1A这个数值所形成的操作数地址中的内容传送至EAX寄存器。,指令 MOV AX,BX+1000H的操作过程 如图示,2200H,2201H,2202H,2203H,99,AB,45,D6,存储器,AB D6,12 00,EAX,EBX,+,1000H,1200H,2200H,位移量,(,5)相

47、对基地址加变址寻址,相对基地址加变址寻址类似于基地址加变址寻址,它除了需要加上位移量之外,仍然需要用基地址寄存器和变址寄存器的内容来形成操作数的地址。也就是说,它是用基址寄存器和变址寄存器上的内容再加上位移量,从而形成操作数在存储器中的有效地址。这种寻址方式常被用来对存储器内的二维数组的数组元素进行寻址。例如:,MOV EDX,EBX+ECX+200H,图中以指令MOV EAX,BX+SI+100H执行过程为例,展示出用相对基址加变址寻址方式进行寻址的操作过程。,存储器,+,EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,1 0,0 A,2 0,0 0,5 9,100AH,00

48、20H,112AH,112AH,1129H,112BH,1128H,112CH,1127H,1126H,2 B,+,位移量0100H,102AH,5 9,2 B,(6)带比例因子的变址寻址,这种寻址方式是80386Pentium所特有的,在对存储器进行寻址操作时,要用到两个寄存器,第1个是基地址寄存器,第2个是变址寄存器,它们均是32位的寄存器。,这种寻址,只有第2个变址寄存器才会与比例因子相乘,变址寄存器内容乘以比例因子后,再加上位移量即可形成操作数的32位的有效地址。,比例因子可以是1、2、4或8。比例因子为1是默认的,例如,指令MOV AL,EBX+ECX 就没有在变址寄存器ECX前面显

49、式地乘以1。,比例因子为2用来对字数组中的数组元素进行寻址操作的,比例因子为4用来对双字数组中的数组元素进行寻址,,例如:MOV EAX,EBX+4*ECX,比例因子为8用来对四字数组中的数组元素进行寻址。,(7)基地址加比例因子变址寻址,这种寻址方式是在前面所述带比例因子的变址寻址方式的基础上,再加上一个位移量就构成了这种寻址方式。例如:,MOV EAX+2*EBX+100H ,DX,这条指令的功能是将16位寄存器DX之内容存储到,由EAX内容加上EBX寄存器内容的2倍,再加上位移量100H而生成的存储器地址。,422有效地址计算,在指令的操作码后面有mod R/M字节时,是最常用的一种指令

50、格式,该字节为用户提供了灵活的寻址方式。存储器中操作数由mod R/M字节指定。被选中段内偏移量是位移量、基地址寄存器内容、一个变址寄存器的内容乘比例因子之和。mod R/M字节给出了有效地址的计算过程公式;,有效地址,段基地址+(变址,比例因子)位移量,比例常数,(scale),1,2,4,8,位移量,(displancement),0位移量,8位位移量,16位位移量,变址,(index,EAX,EB,EC,ED,EBP,ESI,EDI,基地址,(base),EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,+,+,段,CS,SS,DS,ES,FS,GS,+,(segment,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服