汇编语言程序设计第2章.ppt
《汇编语言程序设计第2章.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计第2章.ppt(140页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
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-18086的功能结构第2章 微处理器的结构及存储器组成BIU负责与存储器接口,即8086CPU与存储器之间的信息传送,都是由BIU进行的。具体地说,BIU负责从内存的指定部分取出指令,送至指令流队列中排队,在执行指令时所需的操作数,也由BIU从内存的指定区域取出,传送给EU部分去执行。EU部分负责指令的执行,取指部分与执行指令部分是分开的,于是在一条指令的执行过程中,就可以取出下一条(或多条)指令,在指令流队列中排队。在一条指令执行完以后就可以
3、立即执行下一条指令,减少了CPU为取指令而等待的时间,提高了CPU的利用率和执行速度,降低了与之相配的存储器对采样速度的要求。第2章 微处理器的结构及存储器组成图2-28086的执行方式第2章 微处理器的结构及存储器组成在8080与8085以及标准的8位微处理器中,程序的执行是由取指和执行指令的循环来完成的,执行的顺序为取第一条指令,执行第一条指令;取第二条指令,执行第二条指令;直至取最后一条指令,执行最后一条指令。这样,在每一条指令执行完以后,CPU必须等待,直到下一条指令取出来以后才能执行。所以,它的工作顺序如图2-3所示。图2-3一般8位机的执行方式第2章 微处理器的结构及存储器组成 2
4、80486微处理器的结构微处理器的结构80486是一种高性能全32位的微处理器。它把构成80386微机系统的主处理器、数值协处理器和一个具有8KB的Cache存储器集成在一块集成电路芯片中。沿用了指令流水线技术,采用RISC思想设计,使用静态高速RAM作为程序和数据共用的Cache,提高了存储器的读/写速度,浮点运算部件FPU集成在片内,提高了浮点运算的速度和能力,它支持多任务处理。第2章 微处理器的结构及存储器组成80486微处理器的基本组成如图2-4所示,包括总线接口部件、指令预取部件、指令译码部件、控制和保护部件、算术与逻辑运算部件、浮点运算部件FPU、分段部件、分页部件和8KB的Cac
5、he部件。这些部件可以独立工作,也能与其他部件一起并行工作。在取指令和执行指令时,每个部件完成一项任务或某一操作步骤,这样既可同时对不同的指令进行操作,又可对同一指令的不同部分并行处理,即采用流水线工作方式。第2章 微处理器的结构及存储器组成80486微处理器的特点有:(1)浮点运算器FPU、8KB程序与数据共用Cache和主CPU集成在同一芯片中,减少了外部数据传送环节,提高了浮点运算及数据处理的能力、速度和可靠性。(2)把分段部件和分页部件有机地结合在一起,建立起完整的存储器管理与保护机构,为存储器管理提供4级保护,对指令的执行进行测试与监督,保证指令的正确执行。(3)采用RISC思想设计
6、,使80486既带有CISC类微处理器的特点,又具有RISC类微处理器的特色,与以往的CISC(80 x86)微处理器兼容。第2章 微处理器的结构及存储器组成(4)在总线接口部件中设有成组控制和Cache控制部件,支持CPU在成组传送周期几乎以每个时钟周期传送一个字(2个字节)的速度连续从主存或外部Cache存储器中选取指令和数据,送入内部Cache存储器。另外还设有总线大小控制部件,控制传送数据的宽度,同时提供数据传送时的奇偶控制。为了使宽总线达到最佳使用效果,在系统总线接口部件中配有写缓冲存储器。第2章 微处理器的结构及存储器组成(5)由预取部件负责从内部Cache中取指令或数据。如果指令
7、或数据不在内部Cache中,则从主存中读取,同时填入内部Cache。预取部件的数据通路为16字节(128位),使指令码和数据传送速度加快。预取指令队列为32字节,可存放更多的指令代码或数据,从而有效地加快了指令执行的速度。许多指令(如寄存器之间的数据传送、加减运算等)可在一个时钟周期内完成。第2章 微处理器的结构及存储器组成图2-480486结构逻辑图第2章 微处理器的结构及存储器组成(6)在内部Cache和浮点运算器FPU之间的内部通路采用64位(两个32位)数据线,使浮点数据的传送及运算速度加快。(7)Cache采用“写贯穿”(WriteThrough)方式,使写入数据不仅写入Cache存
8、储器,同时还要写入主存储器,保证了Cache与主存数据的一致性。(8)采用单倍频时钟,简化了时钟电路,提高了CPU的速度。(9)除了内部Cache和FPU外,支持配置外部Cache和数值协处理器FPU,使系统的性能进一步提高。第2章 微处理器的结构及存储器组成(10)在指令系统方面保持与80386兼容。除了包含80387的浮点运算指令外,还增加了6条新指令,即字节交换指令BSWAP、交换并相加指令XADD、比较并交换指令CMPXCH和Cache指令INVD、WBINVD、INVLPG。其中前3条可在系统软件和应用软件中使用,增强数据运算与处理能力;后3条只能在系统软件中使用,增强对内部Cach
9、e和TLB的管理。第2章 微处理器的结构及存储器组成3Pentium微处理器的结构微处理器的结构图2-5Pentium体系结构示意图第2章 微处理器的结构及存储器组成1)超标量流水线超标量流水线(SuperScalar)设计是Pentium处理器技术的核心。它由U和V两条指令流水线构成,如图2-6所示。每条流水线都拥有自己的ALU(算术逻辑单元)、地址生成电路和与数据Cache的接口。这种流水线结构允许Pentium在单个时钟周期内执行两条整数指令,比相同频率的486DX的CPU性能提高了一倍。Pentium双流水线中的每一条流水线分为5个步骤,即指令预取、指令解码、地址生成、指令执行、回写。
10、当一条指令走过预取步骤,流水线就可以开始对另一条指令进行操作。第2章 微处理器的结构及存储器组成图2-6Pentium超标量流水线结构第2章 微处理器的结构及存储器组成Pentium是双流水线结构,可以一次执行两条指令,每条流水线执行一个。这个过程称为“指令并行”。在这种情况下,要求指令必须是简单指令,且V-流水线总是接受U-流水线的下一条指令。例如,在下述4条指令中MOVAX,5INCBXMOVAX,5INCAX前两条指令可以并行工作,而后两条指令则不行,它会产生结果的冲突,因为后两条指令都在对同一个寄存器AX进行操作。因而,Pentium的有效使用还必须借助于有适用的编译工具,能产生尽量不
11、冲突的指令序列。第2章 微处理器的结构及存储器组成2)独立的指令Cache和数据Cache80486片内有8KBCache,而Pentium则为两个8KB,一个作为指令Cache,另一个作为数据Cache,即双路Cache结构,如图2-7所示。图2-7Pentium双路Cache结构第2章 微处理器的结构及存储器组成图中TLB的作用是将线性地址翻译成物理地址。指令Cache和数据Cache采用328的线宽(80486DX为168线宽),是对Pentium64b总线的有力支持。Pentium的数据Cache有两个接口,分别通向U和V两条流水线,以便能在相同时刻向两个独立工作的流水线进行数据交换。
12、当向已被占满的数据Cache写数据时,将移走一部分当前使用频率最低的数据,并同时将其写回主存,这个技术称为Cache回写技术。由于处理器向Cache写数据和将Cache释放的数据写回主存是同时进行的,所以,采用Cache回写技术可大大节省处理时间。第2章 微处理器的结构及存储器组成指令和数据分别使用不同的Cache,使Pentium的性能大大提高。例如,流水线的第一个步骤为指令预取,在这一步中,指令从指令Cache中取出来,如果指令和数据合用一个Cache,指令预取和数据操作之间很有可能发生冲突。提供两个独立的Cache则可避免这种冲突并允许两个操作的并发执行。第2章 微处理器的结构及存储器组
13、成3)浮点操作Pentium的浮点单元流水分为8级,浮点操作的执行过程分为8级流水,使每个时钟周期能完成一个浮点操作,甚至在一个时钟周期内能完成两个浮点操作。浮点单元流水线的前4个步骤同整数流水线相同,后4个步骤的前两步为二级浮点操作,后两步为四舍五入及写结果和出错报告。Pentium的FPU对一些常用指令如ADD、MUL和LOAD等采用了新的算法,同时,用电路进行了固化,用硬件来实现,提高了速度。第2章 微处理器的结构及存储器组成4)分支预测循环操作在软件设计中使用十分普遍,而每次循环中循环条件的判断占用了大量的CPU时间。为此,Pentium提供一个称为分支目标缓冲器BTB(BranchT
14、argetBuffer)的小Cache来动态地预测程序分支。当一条指令导致程序分支时,BTB记住这条指令和分支目标的地址,并用这些信息预测这条指令再次产生分支时的路径,预先从此处预取,保证流水线的指令预取步骤不会空置。BTB机制如图2-8所示。当BTB判断正确时,分支程序即刻得到解码。从循环程序来看,在进入循环和退出循环时,BTB会发生判断错误,需重新计算分支地址。第2章 微处理器的结构及存储器组成在Pentium中,常用指令如MOV、INC、DEC、PUSH、POP、JMP、CALL(near)、NOP、SHIFT、NOT和TEST等改用硬件实现,不再使用微码操作,使指令的运行得到进一步加快
15、。而其他的微码指令由于运行于双流水线上,速度也得到了提高。第2章 微处理器的结构及存储器组成图2-8Pentium的BTB机制第2章 微处理器的结构及存储器组成2.1.2 80 x86和和Pentium微处理器的寄存器结构微处理器的寄存器结构 18086微处理器的寄存器结构微处理器的寄存器结构8086的寄存器结构如图2-9所示。它能处理16位数,AX、BX、CX和DX这4个寄存器均是16位的数据寄存器,用以暂存16位的操作数。其中AX为累加器,其他3个16位寄存器用以存放操作数,通常的用途如表2-1所示。第2章 微处理器的结构及存储器组成图2-98086的寄存器结构第2章 微处理器的结构及存储
16、器组成表表2-1 8086通用寄存器的用法通用寄存器的用法寄存器通常用途AX字乘法、字除法、字I/OAL字节乘法、字节除法、字节I/O、转移、十进制算术运算AH字节乘法、字节除法BX转移CX串操作、循环次数CL变量移位或循环DX字乘法、字除法、间接I/O第2章 微处理器的结构及存储器组成8086也能处理8位数。图2-9中的4个16位数据寄存器也可作为8个8位寄存器使用。8086中有4个16位的段寄存器,即CS(CodeSegmentRegister)、DS(DataSegmentRegister)、SS(StackSegmentRegister)、ES(ExtraSegmentRegister
17、),使8086能在1MB的范围内对内存进行寻址。8086中的堆栈指针SP(StackPointer)用于确定在堆栈操作时,堆栈在内存中的位置。但在8086中SP还必须与SS(堆栈段寄存器)一起才能确定堆栈的实际位置。第2章 微处理器的结构及存储器组成在8086中有3个16位寄存器,BP(BasePointerRegister)、SI(SourceIndexRegister)和DI(DestinationIndexRegister),寻址方式较多,寻找操作数灵活、方便。8086中的指令指针IP(InstructionPointer)是指向下一次要取出的指令,与CS寄存器相配合才能形成真正的物理地
18、址。8086有一个状态标志寄存器,如图2-9(b)所示。第2章 微处理器的结构及存储器组成280 x86和和Pentium微处理器的寄存器结构微处理器的寄存器结构80 x86和Pentium微处理器的寄存器可以分为基本体系结构寄存器、系统级寄存器和调试与测试寄存器3类。其中基本体系结构寄存器和浮点寄存器应用程序可以直接访问,一般称作程序可见寄存器。其他寄存器在应用程序设计期间不能直接寻址,只有特权级为0级的程序才可以使用它们,一般称为程序不可见寄存器。80486和Pentium微处理器中包含的寄存器有8种:通用寄存器,段寄存器,指令指针寄存器,状态标志寄存器,控制寄存器,系统地址寄存器,调试与
19、测试寄存器和浮点寄存器。第2章 微处理器的结构及存储器组成1)通用寄存器通用寄存器共有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-1080486通用寄存器第2章 微处理器的结构及存储器组成2)段寄存器段寄存器有6个,每个16位
20、,其中CS、DS、SS分别作为指令代码段、数据段和堆栈段寄存器,ES、FS和GS作为附加数据段寄存器。在实地址方式和虚拟8086方式下分别存放相应段的基地址;在保护方式下作为选择器,存放相应的选择符,如图2-11所示。每个段寄存器对应一个隐含不可访问的段描述符寄存器,存放由选择符寻址的描述符。选择符的高13位是段描述符表的地址(简称选择码),低3位表示段描述符的类型和特权标志。段选择符与段描述符寄存器如图2-12所示。第2章 微处理器的结构及存储器组成图2-1180486段寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器附加段寄存器附加段寄存器第2章 微处理器的结构及存储器组成图2-12
21、段寄存器与段描述符高速缓冲寄存器第2章 微处理器的结构及存储器组成3)指令指针寄存器指令指针寄存器是一个32位的寄存器,如图2-13所示,用来存放当前代码段中下一条要执行指令的偏移量(或称偏移地址)。在实地址方式和虚拟8086方式下,作为16位指针寄存器使用;在保护方式下,作为32位指针寄存器使用。IP3116150图2-1380486指令指针寄存器第2章 微处理器的结构及存储器组成4)状态标志寄存器状态标志寄存器是一个32位的寄存器,实际使用了15位,用来存放微处理器的状态标志和控制标志。其中部分标志供系统使用,因此也称为系统标志。各位的符号如图2-14所示。第2章 微处理器的结构及存储器组
22、成图2-1480486状态标志寄存器第2章 微处理器的结构及存储器组成FLAGS是16位标志寄存器,由EFLAGS中的D15D0组成,其中包含了两种标志:状态标志(S)、控制标志(C)。SF、ZF、PF、CF、AF和OF组成了状态标志,控制标志由DF、IF和TF构成。EFLAGS是32位标志寄存器,其中包含了3种标志:状态标志(S)、控制标志(C)和系统标志(X)。状态标志报告算术/逻辑运算指令执行后的状态;控制标志仅含一个标志DF,用于控制串操作指令的地址改变方向;系统标志用于控制I/O、屏蔽中断、调试、任务转换和控制保护方式与虚拟8086方式间的转换。第2章 微处理器的结构及存储器组成图2
23、-14给出了EFLAGS各位的标志名,共定义了15位14种标志。其中CF、PF、AF、ZF、SF、TF、IF、DF、OF属于8086的标志位;LF、RF是80286新增的标志位;VM是80386新增的;AC则是80486新增的。各个标志位的功能分述如下:(1)辅助进位标志AF(AuxitiaryCarryFlag)。在字节操作时,由低半字节(一个字节的低4位)向高半字节(一个字节的高4位)进位或借位;在字操作时,低位字节向高位字节有进位或借位,则AF=1,否则为0。这个标志用于十进制算术运算指令中。第2章 微处理器的结构及存储器组成(2)进位标志CF(CarryFlag)。当结果的最高位(字节
24、操作时的D7或字操作时的D15)产生一个进位或借位,则CF=1,否则CF=0。这个标志主要用于多字节数的加、减法运算。移位和循环移位指令也能够把存储器或寄存器中的最高位(左移时)或最低位(右移时)放入标志CF中。(3)溢出标志OF(OverflowFlag)。在算术运算中,带符号数的运算结果超出了8位或16位(带符号数能表达的范围),即在字节运算时结果大于+127或结果小于-128,在字运算时结果大于32767或结果小于-32768,此标志置位。第2章 微处理器的结构及存储器组成溢出和进位是两个不同性质的标志,千万不能混淆了。例如,在字节运算中MOVAL,64HADDAL,64H即011001
25、00+0110010011001000D7位向前无进位,故运算后CF=0;但运算结果超过了+127,此时,溢出标志OF=1。又例如,在字节运算中MOVAL,0ABHADDAL,0FFH即10101011(-85)+11111111(-1)110101010第2章 微处理器的结构及存储器组成D7位向前有进位,故运算后CF=1;但运算的结果又不小于-128,此时,溢出标志OF=0。在字运算中MOVAX,0064HADDAX,0064H即0000000001100100+00000000011001000000000011001000D15位未产生进位,故CF=0;运算结果未超过+32767,故OF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计
限制150内