汇编语言程序设计第2章课件_第1页
汇编语言程序设计第2章课件_第2页
汇编语言程序设计第2章课件_第3页
汇编语言程序设计第2章课件_第4页
汇编语言程序设计第2章课件_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 微处理器的结构及存储器组成第2章 微处理器的结构及存储器组成2.1 80 x86和和Pentium微处理器的结构微处理器的结构2.2 存储器的组织存储器的组织第2章 微处理器的结构及存储器组成2.1 80 x86和和Pentium微处理器的结构微处理器的结构2.1.1 80 x86和和Pentium微处理器的结构微处理器的结构 18086微处理器的结构微处理器的结构 Intel8086(简称8086)是在Intel公司的8位微处理器8080与8085的基础上发展起来的一种16位微处理器。它的内部结构是16位的,数据总线也是16条;它能处理16位数据(具有16位运算指令,包括乘法和除法指

2、令),同时也能处理8位数据;它能执行整套8080/8085的指令,所以它在汇编语言上与8080/8085是兼容的。第2章 微处理器的结构及存储器组成图2-1 8086的功能结构存储器接口ESCSSSDSIP4321执行单元控制系统AHALBHBLCHCLDHDLSPBPSIDI标志BIUC-BUSB-BUSEUALUA-BUS指令流字节排队第2章 微处理器的结构及存储器组成 BIU负责与存储器接口,即8086CPU与存储器之间的信息传送,都是由BIU进行的。具体地说,BIU负责从内存的指定部分取出指令,送至指令流队列中排队,在执行指令时所需的操作数,也由BIU从内存的指定区域取出,传送给EU部

3、分去执行。 EU部分负责指令的执行,取指部分与执行指令部分是分开的,于是在一条指令的执行过程中,就可以取出下一条(或多条)指令,在指令流队列中排队。在一条指令执行完以后就可以立即执行下一条指令,减少了CPU为取指令而等待的时间,提高了CPU的利用率和执行速度,降低了与之相配的存储器对采样速度的要求。第2章 微处理器的结构及存储器组成图2-2 8086的执行方式取指取指取指取指取指得到数据取指等待执行执行执行执行BIUEU第2章 微处理器的结构及存储器组成 在8080与8085以及标准的8位微处理器中,程序的执行是由取指和执行指令的循环来完成的,执行的顺序为取第一条指令,执行第一条指令;取第二条

4、指令,执行第二条指令;直至取最后一条指令,执行最后一条指令。这样,在每一条指令执行完以后,CPU必须等待,直到下一条指令取出来以后才能执行。所以,它的工作顺序如图2-3所示。取指执行取指执行取指执行时间图2-3 一般8位机的执行方式第2章 微处理器的结构及存储器组成 280486微处理器的结构微处理器的结构 80486是一种高性能全32位的微处理器。它把构成80386微机系统的主处理器、数值协处理器和一个具有8 KB的Cache存储器集成在一块集成电路芯片中。沿用了指令流水线技术,采用RISC思想设计,使用静态高速RAM作为程序和数据共用的Cache,提高了存储器的读/写速度,浮点运算部件FP

5、U集成在片内,提高了浮点运算的速度和能力,它支持多任务处理。第2章 微处理器的结构及存储器组成 80486微处理器的基本组成如图2-4所示,包括总线接口部件、指令预取部件、指令译码部件、控制和保护部件、算术与逻辑运算部件、浮点运算部件FPU、分段部件、分页部件和8 KB的Cache部件。这些部件可以独立工作,也能与其他部件一起并行工作。在取指令和执行指令时,每个部件完成一项任务或某一操作步骤,这样既可同时对不同的指令进行操作,又可对同一指令的不同部分并行处理,即采用流水线工作方式。第2章 微处理器的结构及存储器组成 80486微处理器的特点有: (1) 浮点运算器FPU、8 KB程序与数据共用

6、Cache和主CPU集成在同一芯片中,减少了外部数据传送环节,提高了浮点运算及数据处理的能力、速度和可靠性。 (2) 把分段部件和分页部件有机地结合在一起,建立起完整的存储器管理与保护机构,为存储器管理提供4级保护,对指令的执行进行测试与监督,保证指令的正确执行。 (3) 采用RISC思想设计,使80486既带有CISC类微处理器的特点,又具有RISC类微处理器的特色,与以往的CISC(80 x86)微处理器兼容。第2章 微处理器的结构及存储器组成 (4) 在总线接口部件中设有成组控制和Cache控制部件,支持CPU在成组传送周期几乎以每个时钟周期传送一个字(2个字节)的速度连续从主存或外部C

7、ache存储器中选取指令和数据,送入内部Cache存储器。另外还设有总线大小控制部件,控制传送数据的宽度,同时提供数据传送时的奇偶控制。为了使宽总线达到最佳使用效果,在系统总线接口部件中配有写缓冲存储器。第2章 微处理器的结构及存储器组成 (5) 由预取部件负责从内部Cache中取指令或数据。如果指令或数据不在内部Cache中,则从主存中读取,同时填入内部Cache。预取部件的数据通路为16字节(128位),使指令码和数据传送速度加快。预取指令队列为32字节,可存放更多的指令代码或数据,从而有效地加快了指令执行的速度。许多指令(如寄存器之间的数据传送、加减运算等)可在一个时钟周期内完成。第2章

8、 微处理器的结构及存储器组成图2-4 80486结构逻辑图32位基址/变址总线桶形移位器寄存器组ALU分段部件描述符寄存器界限和属性PLA分页部件TLBCache部件8 KB一体的Cache总线大小控制奇偶控制和产生地址驱动器写缓存(4)数据总线收发器总线控制请求序列发 生 器成组控制Cache控制预取部件32字节代码队列EP寄存器组FPU控制ROM控 制 和保护部件指令译码20位物理地址页属性32位系统地址32位写数据系统接口已译码的指令24位代码流整数部件32位读数据64位部件传送总线微指令总线32位位移总线32位线性地址总线32位数据总线32位数据总线第2章 微处理器的结构及存储器组成

9、(6) 在内部Cache和浮点运算器FPU之间的内部通路采用64位(两个32位)数据线,使浮点数据的传送及运算速度加快。 (7) Cache采用“写贯穿”(Write Through)方式,使写入数据不仅写入Cache存储器,同时还要写入主存储器,保证了Cache与主存数据的一致性。 (8) 采用单倍频时钟,简化了时钟电路,提高了CPU的速度。 (9) 除了内部Cache和FPU外,支持配置外部Cache和数值协处理器FPU,使系统的性能进一步提高。第2章 微处理器的结构及存储器组成 (10) 在指令系统方面保持与80386兼容。除了包含80387的浮点运算指令外,还增加了6条新指令,即字节交

10、换指令BSWAP、交换并相加指令XADD、比较并交换指令CMPXCH和Cache指令INVD、WBINVD、INVLPG。其中前3条可在系统软件和应用软件中使用,增强数据运算与处理能力;后3条只能在系统软件中使用,增强对内部Cache和TLB的管理。第2章 微处理器的结构及存储器组成3Pentium微处理器的结构微处理器的结构图2-5 Pentium体系结构示意图指令Cache整数单元分支预测预取指令缓冲器整数单元寄 存 器 组数据Cache64b总线接口流水线结构的浮点单元MULADDDIV32 b32 b32 b64 b64 b64 b256 bUV第2章 微处理器的结构及存储器组成 1)

11、 超标量流水线 超标量流水线(Super Scalar)设计是Pentium处理器技术的核心。它由U和V两条指令流水线构成,如图 2-6所示。每条流水线都拥有自己的ALU(算术逻辑单元)、地址生成电路和与数据Cache的接口。这种流水线结构允许Pentium在单个时钟周期内执行两条整数指令,比相同频率的486DX的CPU性能提高了一倍。 Pentium双流水线中的每一条流水线分为5个步骤,即指令预取、指令解码、地址生成、指令执行、回写。当一条指令走过预取步骤,流水线就可以开始对另一条指令进行操作。第2章 微处理器的结构及存储器组成图2-6 Pentium超标量流水线结构U-流水线V-流水线U或

12、V流水线第2章 微处理器的结构及存储器组成 Pentium是双流水线结构,可以一次执行两条指令,每条流水线执行一个。这个过程称为“指令并行”。在这种情况下,要求指令必须是简单指令,且V-流水线总是接受U-流水线的下一条指令。例如,在下述4条指令中 MOV AX,5 INC BX MOV AX,5 INC AX 前两条指令可以并行工作,而后两条指令则不行,它会产生结果的冲突,因为后两条指令都在对同一个寄存器AX进行操作。因而,Pentium的有效使用还必须借助于有适用的编译工具,能产生尽量不冲突的指令序列。第2章 微处理器的结构及存储器组成 2) 独立的指令Cache和数据Cache 80486

13、片内有8 KB Cache,而Pentium则为两个8 KB,一个作为指令Cache,另一个作为数据Cache,即双路Cache结构,如图2-7所示。图2-7 Pentium双路Cache结构8 KB指令CacheTLB8 KB数据CacheTLB取指令U-流水线数据V-流水线数据32 b线宽无回写32 b线宽有回写第2章 微处理器的结构及存储器组成 图中TLB的作用是将线性地址翻译成物理地址。指令Cache和数据Cache采用328的线宽(80486DX为168线宽),是对Pentium 64 b总线的有力支持。 Pentium的数据Cache有两个接口,分别通向U和V两条流水线,以便能在相

14、同时刻向两个独立工作的流水线进行数据交换。当向已被占满的数据Cache写数据时,将移走一部分当前使用频率最低的数据,并同时将其写回主存,这个技术称为Cache回写技术。由于处理器向Cache写数据和将Cache释放的数据写回主存是同时进行的,所以,采用Cache回写技术可大大节省处理时间。第2章 微处理器的结构及存储器组成 指令和数据分别使用不同的Cache,使Pentium的性能大大提高。例如,流水线的第一个步骤为指令预取,在这一步中,指令从指令Cache中取出来,如果指令和数据合用一个Cache,指令预取和数据操作之间很有可能发生冲突。提供两个独立的Cache则可避免这种冲突并允许两个操作

15、的并发执行。第2章 微处理器的结构及存储器组成 3) 浮点操作 Pentium的浮点单元流水分为8级,浮点操作的执行过程分为8级流水,使每个时钟周期能完成一个浮点操作,甚至在一个时钟周期内能完成两个浮点操作。 浮点单元流水线的前4个步骤同整数流水线相同,后4个步骤的前两步为二级浮点操作,后两步为四舍五入及写结果和出错报告。Pentium的FPU对一些常用指令如ADD、MUL和LOAD等采用了新的算法,同时,用电路进行了固化,用硬件来实现,提高了速度。第2章 微处理器的结构及存储器组成 4) 分支预测 循环操作在软件设计中使用十分普遍,而每次循环中循环条件的判断占用了大量的CPU时间。为此,Pe

16、ntium提供一个称为分支目标缓冲器BTB(Branch Target Buffer)的小Cache来动态地预测程序分支。当一条指令导致程序分支时,BTB记住这条指令和分支目标的地址,并用这些信息预测这条指令再次产生分支时的路径,预先从此处预取,保证流水线的指令预取步骤不会空置。BTB机制如图2-8所示。 当BTB判断正确时,分支程序即刻得到解码。从循环程序来看,在进入循环和退出循环时,BTB会发生判断错误,需重新计算分支地址。第2章 微处理器的结构及存储器组成 在Pentium中,常用指令如MOV、INC、DEC、PUSH、POP、JMP、CALL(near)、NOP、SHIFT、NOT和T

17、EST等改用硬件实现,不再使用微码操作,使指令的运行得到进一步加快。而其他的微码指令由于运行于双流水线上,速度也得到了提高。第2章 微处理器的结构及存储器组成指令Cache指令预取指令解码BTB图2-8 Pentium的BTB机制 第2章 微处理器的结构及存储器组成2.1.2 80 x86和和Pentium微处理器的寄存器结构微处理器的寄存器结构 18086微处理器的寄存器结构微处理器的寄存器结构 8086的寄存器结构如图2-9所示。它能处理16位数,AX、BX、CX和DX这4个寄存器均是16位的数据寄存器,用以暂存16位的操作数。其中AX为累加器,其他3个16位寄存器用以存放操作数,通常的用

18、途如表2-1所示。第2章 微处理器的结构及存储器组成AHALBHBLCHCLDHDLSPAXBXCXDXBPSIDIIPFLAGHFLAGLCSDSSSES(SP)(PC)(PSW)累加器基 数计 数数 据堆栈指针基数指针源变址目的变址指令指针状态标志代码分段数据分段堆栈分段附加分段控制寄存器段寄存器数 据寄存器指 针寄存器变 址寄存器通 用寄存器O DITSZAPC15870(a)(b)(A)(HL)(BC)(DE)图2-9 8086的寄存器结构第2章 微处理器的结构及存储器组成表表2-1 8086通用寄存器的用法通用寄存器的用法寄存器通常用途AX字乘法、字除法、字I/OAL字节乘法、字节除

19、法、字节I/O、转移、十进制算术运算AH字节乘法、字节除法BX转移CX串操作、循环次数CL变量移位或循环DX字乘法、字除法、间接I/O第2章 微处理器的结构及存储器组成 8086也能处理8位数。图2-9中的4个16位数据寄存器也可作为8个8位寄存器使用。 8086中有4个16位的段寄存器,即CS(Code Segment Register)、DS(Data Segment Register)、SS(Stack Segment Register)、ES(Extra Segment Register),使8086能在1 MB的范围内对内存进行寻址。8086中的堆栈指针SP(Stack Pointe

20、r)用于确定在堆栈操作时,堆栈在内存中的位置。但在8086中SP还必须与SS(堆栈段寄存器)一起才能确定堆栈的实际位置。第2章 微处理器的结构及存储器组成 在8086中有3个16位寄存器,BP(Base Pointer Register)、SI(Source Index Register)和DI(Destination Index Register),寻址方式较多,寻找操作数灵活、方便。 8086中的指令指针IP(Instruction Pointer)是指向下一次要取出的指令,与CS寄存器相配合才能形成真正的物理地址。 8086有一个状态标志寄存器,如图2-9(b)所示。第2章 微处理器的结

21、构及存储器组成 280 x86和和Pentium微处理器的寄存器结构微处理器的寄存器结构 80 x86和Pentium微处理器的寄存器可以分为基本体系结构寄存器、系统级寄存器和调试与测试寄存器3类。其中基本体系结构寄存器和浮点寄存器应用程序可以直接访问,一般称作程序可见寄存器。其他寄存器在应用程序设计期间不能直接寻址,只有特权级为0级的程序才可以使用它们,一般称为程序不可见寄存器。 80486和Pentium微处理器中包含的寄存器有8种:通用寄存器,段寄存器,指令指针寄存器,状态标志寄存器,控制寄存器,系统地址寄存器,调试与测试寄存器和浮点寄存器。第2章 微处理器的结构及存储器组成 1) 通用

22、寄存器 通用寄存器共有8个,如图2-10所示。其中EAX、EBX、ECX和EDX可作为8位、16位或32位寄存器使用,ESI、EDI、EBP、ESP可作为16位或32位寄存器使用,作用如下:EAX:常用作累加器;EBX:常用作基址寄存器;ECX:常用作计数器;EDX:常用作数据寄存器;ESI:常用作源变址寄存器;EDI:常用作目的变址寄存器;EBP:常用作基址寄存器;ESP:常用作堆栈指针寄存器。第2章 微处理器的结构及存储器组成图2-10 80486通用寄存器SIAHBHCHDHABCDXXXXALBLCLDLDIBPSPEAXEBXECXEDXESIEDIEBPESP3116 15870第

23、2章 微处理器的结构及存储器组成 2) 段寄存器 段寄存器有6个,每个16位,其中CS、DS、SS分别作为指令代码段、数据段和堆栈段寄存器,ES、FS和GS作为附加数据段寄存器。在实地址方式和虚拟8086方式下分别存放相应段的基地址;在保护方式下作为选择器,存放相应的选择符,如图2-11所示。每个段寄存器对应一个隐含不可访问的段描述符寄存器,存放由选择符寻址的描述符。选择符的高13位是段描述符表的地址(简称选择码),低3位表示段描述符的类型和特权标志。段选择符与段描述符寄存器如图2-12所示。第2章 微处理器的结构及存储器组成图2-11 80486段寄存器 代码段寄存器数据段寄存器堆栈段寄存器

24、附加段寄存器附加段寄存器附加段寄存器第2章 微处理器的结构及存储器组成图2-12 段寄存器与段描述符高速缓冲寄存器选择符选择符选择符选择符选择符选择符段寄存器CSSSDSESFSGS物理基地址 段界限段说明符段描述符高速缓冲寄存器第2章 微处理器的结构及存储器组成 3) 指令指针寄存器 指令指针寄存器是一个32位的寄存器,如图2-13所示,用来存放当前代码段中下一条要执行指令的偏移量(或称偏移地址)。在实地址方式和虚拟8086方式下,作为16位指针寄存器使用;在保护方式下,作为32位指针寄存器使用。 IP31 16 15 0图2-13 80486指令指针寄存器第2章 微处理器的结构及存储器组成

25、 4) 状态标志寄存器 状态标志寄存器是一个32位的寄存器,实际使用了15位,用来存放微处理器的状态标志和控制标志。其中部分标志供系统使用,因此也称为系统标志。各位的符号如图2-14所示。第2章 微处理器的结构及存储器组成图2-14 80486状态标志寄存器第2章 微处理器的结构及存储器组成 FLAGS是16位标志寄存器,由EFLAGS中的D15D0组成,其中包含了两种标志:状态标志(S)、控制标志(C)。SF、ZF、PF、CF、AF和OF组成了状态标志,控制标志由DF、IF和TF构成。EFLAGS是32位标志寄存器,其中包含了3种标志:状态标志(S)、控制标志(C)和系统标志(X)。状态标志

26、报告算术/逻辑运算指令执行后的状态;控制标志仅含一个标志DF,用于控制串操作指令的地址改变方向;系统标志用于控制I/O、屏蔽中断、调试、任务转换和控制保护方式与虚拟8086方式间的转换。 第2章 微处理器的结构及存储器组成 图2-14给出了EFLAGS各位的标志名,共定义了15位14种标志。其中CF、PF、AF、ZF、SF、TF、IF、DF、OF属于8086的标志位; LF、RF是80286新增的标志位;VM是80386新增的;AC则是80486新增的。各个标志位的功能分述如下: (1) 辅助进位标志AF(Auxitiary Carry Flag)。在字节操作时,由低半字节(一个字节的低4位)

27、向高半字节(一个字节的高4位)进位或借位;在字操作时,低位字节向高位字节有进位或借位,则AF=1 ,否则为0。这个标志用于十进制算术运算指令中。第2章 微处理器的结构及存储器组成 (2) 进位标志CF(Carry Flag)。当结果的最高位(字节操作时的D7或字操作时的D15)产生一个进位或借位,则CF=1,否则CF=0。这个标志主要用于多字节数的加、减法运算。移位和循环移位指令也能够把存储器或寄存器中的最高位(左移时)或最低位(右移时)放入标志CF中。 (3) 溢出标志OF(Overflow Flag)。在算术运算中,带符号数的运算结果超出了8位或16位(带符号数能表达的范围),即在字节运算

28、时结果大于 +127或结果小于 -128,在字运算时结果大于32 767或结果小于 -32 768,此标志置位。第2章 微处理器的结构及存储器组成 溢出和进位是两个不同性质的标志,千万不能混淆了。例如,在字节运算中 MOV AL,64H ADD AL,64H即 01100100 + 01100100 11001000 D7位向前无进位,故运算后CF=0;但运算结果超过了+127,此时,溢出标志OF=1。又例如,在字节运算中 MOV AL,0ABH ADD AL,0FFH即 10101011 (-85) +11111111 (-1) 1 10101010第2章 微处理器的结构及存储器组成 D7位

29、向前有进位,故运算后CF=1;但运算的结果又不小于-128,此时,溢出标志OF=0。在字运算中 MOV AX,0064H ADD AX,0064H即 00000 + 00000 00000D15位未产生进位,故CF=0;运算结果未超过+32767,故OF=0。 第2章 微处理器的结构及存储器组成但若有 MOV AX,6400H ADD AX,6400H即 01100100 00000000 +01100100 00000000 11001 第2章 微处理器的结构及存储器组成 D15位未产生进位,故CF=0,但运算结果超过了+32767,故OF=1。又例如: MOV AX,0AB00H ADD

30、AX,0FFFFH即: 10101011 00000000 + 11111111 11111111 110101010 11111111D15位产生进位,故CF=1,但运算结果不小于-32 768,故OF=0。 第2章 微处理器的结构及存储器组成 (4) 符号标志SF(Sign Flag)。它的值与运算结果的最高位相同。即结果的最高位(字节操作时为D7,字操作时为D15)为1,则SF=1;否则SF0。由于在80X86中符号数是用补码表示的,所以SF表示了结果的符号,SF=0为正,SF=1为负。 (5) 奇偶标志PF(Parity F1ag)。若操作结果中“1”的个数为偶数,则PF=1,否则PF

31、=0。这个标志可用于检查在数据传送过程中是否发生错误。 (6) 零标志ZF(Zero Flag)。若运算的结果为0,则ZF=1,否则ZF=0。80 x86还提供了三个控制标志,它们能由程序来置位和复位,以变更对处理器的操作。第2章 微处理器的结构及存储器组成 (7) 方向标志DF(Direction Flag)。若用指令置OF=1,则引起串操作指令为自动减量指令,也就是从高地址到低地址处理字符串;若使OF=0,则串操作指令就为自动增量指令,也就是从低地址到高地址处理字符串。 (8) 中断允许标志IF(Interrupt-enable Flag)。若指令中置IF=1,则允许CPU去接收外部的可屏

32、蔽中断请求;若使IF=0,则屏蔽上述的中断请求,对内部产生的中断不起作用。 (9) 追踪标志TF(Trap Flag)。置TF标志,使处理进入单步方式,以便于调试。在这个方式中,CPU在每条指令执行以后,产生一个内部中断,允许程序在每条指令执行以后进行检查。 第2章 微处理器的结构及存储器组成 (10) 特权级标志IOPL是状态标志寄存器中的D13和D12位。其表示03级的4个I/O特权级,用于保护方式。只有当任务的现行特权级高于或等于IOPL时(0级最高,3级最低),执行I/O指令才能保证不产生异常。 (11) 任务嵌套标志NT是状态标志寄存器中的D14位。80486/80386/80286

33、的中断和CALL指令可以引起任务转换。NT1表示引起了任务转换,当前任务嵌套在另一任务内,这样,在执行IRET指令时,便返回父任务;NT=0表示没引起任务转换,执行IRET时是进行同任务内的返回,而不发生任务转换。该标志位用来控制被中断的链和被调用的任务。第2章 微处理器的结构及存储器组成 (12) 恢复标志RF是状态标志寄存器中的D16位。该标志与调试寄存器的代码断点结合使用,以保证不重复处理断点。RF1时,即使遇到断点或调试故障也不产生异常中断。在成功地执行每条指令后,RF将自动复位。80486在响应“断点异常”(中断)时,先将RF位置1,然后将EFLAGS压栈;在断点处理程序结束处,IR

34、ET指令将弹出具有RF1的EFLAGS,恢复程序在断点位置的执行,从而保证了代码在断点只执行一次。 (13) 虚拟8086模式标志VM是状态标志寄存器中的D17位。VM1表示工作在虚拟8086方式。该位只能以两种方式来设置,在保护方式下,由最高特权级(0级)的代码段的IRET指令来设置,或者由任务转换来设置。 第2章 微处理器的结构及存储器组成 (14) 对准检查标志AC是状态标志寄存器中的D18位。该位仅对80486有效。AC1且CR0的AM位也为1,则进行字、双字或四字的对准检查。若处理器发现在访问内存时操作数未按边界对准(所谓对准,是指访问字操作数时从偶地址开始,访问双字数据时从4的整数

35、倍地址开始,访问4字数据时从8的整数倍地址开始),则发生异常。对80386,AC位恒为0,不进行对准检查。 EFLAGS的低16位含有80286的全部标志,称为FLAGS标志寄存器。它对于执行8086/80286的代码是很有用的。 第2章 微处理器的结构及存储器组成 5) 控制寄存器 控制寄存器为CR0CR3共有4个,各32位,用来存放全局性与任务无关的机器状态,其标志符号如图2-15所示。与80386相比,80486的CR0增加了NE、WP、AM、NW和CD,CR3增加了PWT和PCD。第2章 微处理器的结构及存储器组成图2-15 80486控制寄存器PGCDNWAMWPNEETTSEMMP

36、PE0123451512 11161718293031保 留页故障线性地址寄存器PCDPWT保 留页目录基址寄存器CR0CR1CR2CR3第2章 微处理器的结构及存储器组成 (1) CR0用来存放系统控制标志或表示处理器的状态,定义了11位,其功能是: PE:保护方式允许位。置1,进入保护方式;清0,进入实地址方式。 MP:监控协处理器位。置1,表示有协处理器。若在80486系统中运行80286或80386程序,该位置1;若运行80486程序,该位清0。 EM:模拟协处理器位。该位为1,表示软件模拟协处理器,这时若使用协处理器指令将产生协处理器无效异常中断;该位为,允许协处理器指令使用实际的协

37、处理器。在运行80286或80386程序时,该位置1;在80486SX系统中该位也必须置1。第2章 微处理器的结构及存储器组成 TS:任务切换位。每次任务转换,该位置1。在解释浮点算术运算指令时,对该位进行测试。清除任务切换标志指令CLTS可将该位清0。 ET:处理器扩展类型标志。该位置1,表示配置80387;否则表示未配置。 NE:数值异常事故位。该位用来控制浮点运算中未被屏蔽的异常故障。该位置1,允许报告浮点数值错;该位清0且IGNNE输入有效,则不予以报告。当NE清0且IGNNE输入无效时,数值错将会使处理器停止运行,并等待一次中断。第2章 微处理器的结构及存储器组成 WP:写保护位。该

38、位用来净化80486的页写保护机构,即保护用户级的那些页。该位置1,禁止管理级的写操作写入用户级的页上;该位清0,管理级可向用户级的页进行写入。 AM:对准屏蔽位。该位与状态标志AC配合使用,控制对数据的对准校验。该位置1且AC也置1时,对用户级(CPL3)访问的存储器单元进行对准校验,即边界检查,否则不校验。第2章 微处理器的结构及存储器组成 NW:不透明写位。该位也称为不是写贯穿,用来控制Cache操作。该位清0,所有命中Cache的写操作将按写贯穿方式写入Cache,同时写入主存;该位置1且CD位也置1,只写入Cache存储器,而不写入主存。 CD:允许Cache位。该位用来控制是否使用

39、片内Cache。该位清0,允许使用内部Cache,这时若不命中,可对片内Cache存储器填充写入;该位置1,又不命中Cache时不能对Cache填充写入。若访问Cache命中,则Cache正常运行;若要彻底禁止Cache,可用专门的指令INVD或WBINVD对片内Cache刷新。刷新就是使片内Cache中的所有数据无效即清0。 PG:允许分页位。该位置1,允许分页;该位清0,禁止分页。第2章 微处理器的结构及存储器组成 (2) CR1未用。 (3) CR2为页故障线性地址寄存器,用来保存最后出现页故障的32位线性地址。只有当CR0中的PG位为1时,CR2才有意义。 (4) CR3为页目录基址寄

40、存器。其中高20位存放页目录表的物理基地址。在低12位中用2位作为标志位,其余10位未用。标志位的作用是:第2章 微处理器的结构及存储器组成 PCD:禁止页高速缓冲位。该位置1,不对页进行高速缓冲操作。在不分页情况下的总线周期,该信号由PCD引脚输出,控制外部二级Cache的高速缓冲操作。 PWT:写贯穿位。在80486内部Cache中使用的是“写贯穿”方式,而外部二级Cache有的使用“写贯穿”方式,有的既可使用“写贯穿”方式又可使用“写回”方式。PWT1,使片外二级Cache采用“写贯穿”方式,否则采用“写回”方式。 “写贯穿”就是向Cache写入数据的同时,也写入到主存中;“写回”是只有

41、当Cache中的某一存储块被刷新时,才把这一存储块写回到主存中去。第2章 微处理器的结构及存储器组成 6) 系统地址寄存器 在80486微处理器中设置了4个系统地址寄存器,如图2-16所示。其作用也与80386基本相同,用来在保护方式下管理4个系统表,即引用80486在保护方式下所需要的段表信息。由于只能在保护方式下使用,因此又称为保护方式寄存器。第2章 微处理器的结构及存储器组成图2-16 80486系统地址寄存器32位线性基地址4716 15界限值0GDTRIDTR1516位选择符 0选择器32位线性基地址界限值 属性说明符描述符高速缓冲寄存器(自动装入)TRLDTR第2章 微处理器的结构

42、及存储器组成 (1) 全局描述符表寄存器GDTR,一个48位寄存器,用来存放全局描述符表GDT的32位线性基地址和16位的界限值,在全局描述符表中不仅包括有操作系统使用的描述符,而且还有所有任务使用的公用描述符。 (2) 中断描述符表寄存器IDTR,一个48位寄存器,用来存放中断描述符表IDT的32位线性基地址和16位的界限值。第2章 微处理器的结构及存储器组成 (3) 局部描述符表寄存器LDTR,一个16位寄存器,用来存放局部描述符表LDT的16位选择符。另外还有一个隐含的描述符高速缓冲寄存器,用来存放LDT表描述符。 (4) 任务状态寄存器TR,一个16位寄存器,用来存放任务状态段TSS的

43、16位选择符。与之相应,也有一个隐含的描述符高速缓冲寄存器,用来存放任务状态段TSS的描述符。第2章 微处理器的结构及存储器组成 7) 调试与测试寄存器 (1) 调试寄存器。该类寄存器有8个,各32位,如图2-17(a)所示,表示为DR0DR7。其中DR0DR3用作线性断点地址寄存器,可保存4个断点地址,DR6用作断点状态寄存器,用来设置若干个状态标志,其中低4位分别表示4个断点处的调试状态。若进入调试状态,由硬件置1;退出调试状态时应由软件清0。另外还有3位,即BT、BS和BD,其中BT是与任务状态段中调试自陷位T相关的状态标志位,BS是与状态标志寄存器中的自陷标志TF相关的状态标志位,BD

44、是当内部电路仿真使用的下一条指令对8个调试寄存器中的任一个进行读/写时,置1。DR7是断点控制寄存器,用来设置控制标志、控制断点的设置、设置条件、断点地址的有效范围以及是否进入异常中断等。DR4DR5为Intel公司保留。第2章 微处理器的结构及存储器组成图2-17 调试与测试寄存器(a) 调试寄存器;(b) 调试与测试寄存器线性断点地址 0线性断点地址 1线性断点地址 2线性断点地址 3Intel保留Intel保留断点状态断点控制031DR0DR1DR2DR3DR4DR5DR6DR7Cache测试控制031Cache测试数据Cache测试状态TLB测试控制TLB测试状态TR3TR4TR5TR

45、6TR7(a)(b)第2章 微处理器的结构及存储器组成 (2) 测试寄存器。该类寄存器有4个,各32位,如图2-17(b)所示,表示为TR3TR7。其中TR3TR5用于片内Cache测试。TR6TR7用来控制分页部件中的转换旁视缓冲存储器TLB的工作。TR6作为测试命令寄存器,用来存放测试控制命令,TR7作为数据寄存器,用来存放转换旁视缓冲存储器测试的数据。第2章 微处理器的结构及存储器组成 8) 浮点寄存器 80486微处理器内部的浮点运算器是用于浮点运算的,其内部设有相应的寄存器,包括8个80位通用数据寄存器,一个48位指令指针寄存器、一个48位数据指针寄存器,一个16位控制字寄存器,一个

46、16位状态字寄存器和一个16位标记字寄存器。第2章 微处理器的结构及存储器组成 3总线接口部件总线接口部件 总线接口部件用来与外部主存、外围设备等部件进行数据传送。80486微处理器内部设有高速算术/逻辑运算器、浮点运算器和Cache存储器,配置了外部Cache,这就要求其能与外存、外设高速成批地进行数据传送,故此对总线接口部件的功能有更高的要求。它在内部通过3条32位总线与内部Cache和指令预取部件连接;在外部通过多种电路与系统总线连接,根据优先级别协调数据输入/输出、指令预取、Cache行的填充等工作。为了支持片内Cache的连贯性,配置了总线监视功能。总线接口部件中各部分的功能是:第2

47、章 微处理器的结构及存储器组成 (1) 总线大小(也称为宽度)控制。用来控制数据总线的位数,即按32位、16位或8位进行数据传送。 (2) 奇偶校验控制。数据传送时进行奇偶校验,写操作时产生偶校验,读操作时实施偶校验。如果出错,给出错误信息。 (3) 地址驱动器。提供所有地址信号A31A2和字节允许信号BE3BE0的功率驱动,其中高28位地址为双向信号。 (4) 写缓冲存储器。由于外部数据线是32位,为了传送可靠,在接口部件中设有缓冲存储器,以等待总线全部空闲时再进行写入操作。第2章 微处理器的结构及存储器组成 (5) 数据总线收发器。为32位,用来控制总线数据的接收与发送。 (6) 总线请求

48、序列发生器。也就是总线周期与总线控制电路,用来产生总线周期的时序及控制信号。其中包括成组和非成组传送、总线请求仲裁、浮点运算、中断以及复位等操作所需要的定时控制信号。 (7) 成组传送控制。用来控制内部Cache等部件与外部主存之间的成批数据传送。 (8) Cache控制。Cache控制电路与成批传送控制配合,对系统Cache存储器实施控制。第2章 微处理器的结构及存储器组成 4标志操作指令标志操作指令 80 x86中有一部分指令是专门对标志寄存器或标志位进行操作的。包括四条标志寄存器传送指令和标志位操作指令。 1) 标志寄存器传送指令 (1) LAHF(Load AH with Flags)

49、 格式:LAHF 功能:把标志寄存器的低8位(包括符号标志SF、零标志ZF、辅助进位标志AF、奇偶标志PF和进位标志CF)传送至AH的指定位,即相应地传送至位D7、D6、D4、D2和D0。(位D5、D3、D1的内容没有定义),如图2-18所示。这条指令本身不影响这些标志位。第2章 微处理器的结构及存储器组成图2-18 LAHF指令示意图76543210AHCTSZAPIO DFLAG第2章 微处理器的结构及存储器组成 (2) SAHF(Store AH into Flags) 格式:SAHF 功能:这条指令与上一条的操作刚好相反,它是把寄存器AH的指定位传送至标志寄存器的低8位的SF、ZF、A

50、F、PF和CF标志。因而这些标志的内容就要受到影响,这取决于AH中相应位的状态,但这条指令并不影响溢出标志OF、方向标志DF、中断屏蔽标志IF和追踪标志TF,即不影响标志寄存器的高位字节。第2章 微处理器的结构及存储器组成 (3) PUSHF(Push Flags) 格式:PUSHF 功能:把整个标志寄存器FLAGS推入至栈指针所指的栈的顶部,同时修改栈指针,即SP-2SP。 这条指令不影响标志位。第2章 微处理器的结构及存储器组成 (4) POPF(POP Flags) 格式:POPF 功能:把现行栈指针所指的一个字,传送给标志寄存器FLAGS,同时相应地修改栈指针,即SP+2SP。这条指令

51、执行后,80X86的标志位就取决于原栈顶部的内容。 PUSHF和POPF这两条指令可保存和恢复标志寄存器。在子程序调用和中断服务中可利用这两条指令来保护和恢复标志位。另外,这两条指令也可以用来改变追踪标志TF。在80X86的指令系统中,没有直接能改变TF标志的指令,故若要改变TF标志,先用PUSHF指令把标志位入栈,然后设法改变栈顶存储单元的D8位(把整个标志看成一个字),再用POPF指令恢复。这样其余的标志不受影响,而只有TF标志按需要改变了。第2章 微处理器的结构及存储器组成 (5) PUSHFD 格式:PUSHFD 功能:PUSHFD为标志寄存器入栈指令,用于将32位EFLAGS的内容压

52、入堆栈。操作后,使(E)SP减4。第2章 微处理器的结构及存储器组成 (6) POPFD 格式:POPFD 功能:POPFD为标志寄存器出栈指令,用于将栈顶32位数弹出到EFLAGS中。 说明: EFLAGS的恢复标志RF(D16)和虚拟8086方式标志VM(D17)不受POPF和POPFD指令的影响;I/O特权级标志IOPL(D13、D12)只有在当前代码段的特权级为0时才受影响;中断标志IF(D9)只有在当前特权级至少等于I/O特权级时才受影响。 当压入堆栈的是8位数时,执行上述指令(其操作数宽度属性隐含为16位或32位)应对8位带符号数扩展到16位或32位。第2章 微处理器的结构及存储器

53、组成 2) 标志位操作指令 80 x86有7条直接对标志单独进行操作的指令。其中三条是针对进位标志CF的,两条是针对方向标志DF的,两条是针对中断标志IF的。 (1) CLC(Clear Carry Flags) 格式:CLC 功能:标志CF清0,即0CF。第2章 微处理器的结构及存储器组成(2) CMC(Complement Carry Flags)格式:CMC功能:标志CF取反,即若CF=0,则1CF;若CF=1,则0CF。(3) STC(Set Carry Flags)格式:STC功能:标志CF置1,即1CF。第2章 微处理器的结构及存储器组成(4) CLD(Clear Directio

54、n Flag)格式:CLD功能:标志DF清0,即0DF,则在串操作指令时,使地址增量。(5) STD(Set Direction Flag)格式:STD功能:标志DF置1,即1DF,则在串操作指令时,使地址减量。第2章 微处理器的结构及存储器组成 (6) CLI(Clear Interrupt enable Flag) 格式:CLI 功能:中断允许标志IF清0,即0CF,于是在80X86系统中,外部装置送至可屏蔽中断INTR引线上的中断请求,CPU就不予以响应,即中断屏蔽。但此标志对于非屏蔽中断NMI引线上的请求以及软件中断都没有影响。第2章 微处理器的结构及存储器组成 (7) STI(Set

55、 Interrupt-enable Flag) 格式:STI 功能:标志IF置1,即1IF,则CPU就可以响应出现在INTR引线上的外部中断请求。 上述7条指令除对指定的标志位进行操作外,对其他标志位皆无影响。第2章 微处理器的结构及存储器组成2.2 存储器的组织存储器的组织2.2.1 基本概念基本概念 1常用的术语常用的术语 1) 位(bit) 计算机中存储信息的基本单位是一个二进制位,简称位,是计算机所能表示的最基本最小的数据单元,英文为bit,可用小写字母b表示。一位可存储一位二进制数,它只能有两种状态,即“0”和“1”。由若干个二进制位的组合就可以表示各种数据、字符等。第2章 微处理器

56、的结构及存储器组成 2) 字节(Byte) 相邻的8位二进制数称为一个字节(1Byte8 bit),英文为Byte,可用大写字母B表示。一个字节由8位二进制数组成,其位编号自左至右为b7、b6、b5、b4、b3、b2、b1、b0。一个字节占用一个存储单元。字节是微型机中存取信息的基本单位,长度是固定的,但不同微型机的字长是不同的。8位微机的字长就等于1个字节,而16位微机的字长等于2个字节,32位微机的字长等于4个字节。为了表示方便,常把1个字节定为8位,把一个字(Word)定为16位,一个双字(Double Word)定为32位。第2章 微处理器的结构及存储器组成 3) 字(Word)和字长

57、 字是计算机内部进行数据处理的基本单位,通常它与计算机内部的寄存器、运算装置、总线宽度相一致。一个字是16位,其位编号自左至右为b15b0且占用两个存储单元。计算机的每一个字所包含的二进制位数称为字长。 不同类型的微型计算机有不同的字长,例如,Intel的8080、8085为8位,Intel的8086和80286的字长为16位,Intel的80386和80486的字长为32位。一个计算机的字长与它能表达数的范围不是一回事,因为可以用单字长,也可以用多字长表示数。第2章 微处理器的结构及存储器组成 4) 双字和四字 双字:一个双字有32位,其位编号自左至右为b31b0。一个双字占用4个存储单元。

58、 四字:一个四字有64位,其位编号自左至右为b63b0。一个四字占用8个存储单元。第2章 微处理器的结构及存储器组成 5) 内存单元的编址 为了正确地区分不同的内存单元,给每个单元分配一个存储器地址,地址从0开始编号,顺序递增1。机器中的地址是用无符号二进制数表示,可简写为十六进制数形式。一个存储单元中存放的信息称为该单元的内容。例如,2号单元中存放了一个数字8,则表示为:(2)=8。 对于字、双字、四字数据类型,由于它们每个数据都要占用多个单元,访问时只需给出最低单元的地址号即可,然后依次存取后续字节。习惯上,对于字、双字、四字数据类型,其低地址中存放低位字节数据,高地址中存放高位字节数据,

59、这就是所谓的数据“逆序存放”。第2章 微处理器的结构及存储器组成例例2-1 内存现有以下数据:地址: 0 1 2 3 4 5数据:12H 34H 45H 67H 89H 0AH则对于不同的数据类型,取到1号单元的数据是:(1)字节=34H(1)字=4534H(1)双字=89674534H第2章 微处理器的结构及存储器组成 2分段与分页结构分段与分页结构 1) 分段结构 存储器的分段管理是微型机常用的一种存储管理方法。8086存储管理、80486和Pentium工作在实地址方式时的存储管理,均采用分段管理的方法。这种方法既解决了其字长为16位的机器(如以8086为CPU的PC机)访问1M字节存储

60、空间的矛盾,也便于程序在内存中重定位。采用分段管理后,一个内存单元地址要用段基地址和偏移量两个逻辑地址来描述,表示为段基址:偏移量其段基址和偏移量的限定、物理地址的形成要视CPU工作模式决定。第2章 微处理器的结构及存储器组成 2) 分页结构分页结构 在80486/Pentium保护模式中,存储器在逻辑上仍采用分段式结构。存储器最多可以由16 384 (214)个段组成,每个段最大可达4GB。从程序设计者角度看,整个存储空间可高达64 GB,每一段为相连地址空间单元。存储器分段有利于程序与数据间的隔离及任务之间的隔离和保护。 第2章 微处理器的结构及存储器组成图2-19 存储器映像系统内存区程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论