微处理办法器体系和结构_第1页
微处理办法器体系和结构_第2页
微处理办法器体系和结构_第3页
微处理办法器体系和结构_第4页
微处理办法器体系和结构_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、微处理办法器体系和结构第一节 Intel微处理器的概要历史 8086初始芯片时钟频率为4.77MHz 内部数据总线和外部数据总线都是16位 地址总线为20位,可最大寻址1MB的存储空间80386 80 x8632位处理器 内部和外部数据总线都是32位 地址总线也是32位,可寻址高达4GB内存 具有实模式和保护模式外,还增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086处理器来提供多任务能力 微处理办法器体系和结构第二节 INTEL 8086/8088微处理器的结构微处理办法器体系和结构 8086/8088微处理器的结构相似,都由算术逻辑运算单元ALU、专用和通用寄存器、指令寄存器、指

2、令译码器、定时器控制电路等组成。按功能可把CPU分成两大部:执行单元(Execution Unit)和总线接口单元(Bus Interface Unit)如图2-1所示,图中左半部分为执行单元,简称EU。右半部分为总线接口单元,简称BIU。BIU与外部总线相连,完成与外设(或存储器)的数据传送,包括取指令操作、存储器读/写数据操作、I/O接口的读/写操作。EU通过BIU得到信息,其功能就是负责指令的执行。BIU和EU两个单元可以并行工作。这样提高CPU的工作速度。微处理办法器体系和结构图2-1 8086微处理器内部结构示意图微处理办法器体系和结构一、执行单元与总线接口单元 执行单元EU由8个通

3、用寄存器、1个标志寄存器、算术逻辑运算单元ALU及EU控制电路组成;EU从BIU指令队列寄存器中获得指令和待处理数据进行操作。将指令代码译码后,发出相应的控制信息,将数据在ALU中进行运算,运算结果的特征保留在标志寄存的FLAGS中。 总线接口单元BIU包括4个段寄存器、1个指令指针寄存器、1个与EU通读寄存器。一个先入先出的6个字节(8088是4个字节)指令队列。总线控制逻辑电路及20位实际物理地址计算的加法器。1执行单元EU2.总线接口单元BIU微处理办法器体系和结构(一)、总线接口单元BIU(Bus Interface Unit)功能:负责与 Memory、I/O 端口传送数据。取指令时

4、,从存储器指定地址取出指令送入指令队列排队。执行指令时,根据EU命令对指定存储器单元或I/O端口存取数据。 微处理办法器体系和结构组成4 个段地址寄存器(CS、DS、ES、SS)16位指令指针寄存器IP20位的地址加法器(16d段地址+偏移地址物理地址)6字节(8086)或4字节(8088)的指令队列总线控制电路:处理器与外界总线联系的转接电路。包括三组总线:20 位地址总线, 16 位双向数据总线,一组控制总线。微处理办法器体系和结构指令队列8086 的指令队列为6个字节,8088 的指令队列为4个字节。不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在

5、指令队列中,使 BIU 具有预取指令的功能,是一种先进先出(FIFO)的数据结构。微处理办法器体系和结构指令执行顺序顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。执行转移指令:BIU 清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单元开始重新填满队列。微处理办法器体系和结构(二)、执行单元EU ( Execution Unit ) 功能 执行指令,进行全部算术逻辑运算、完全偏移地址的计算向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理。组成:4个通用寄存器:AX、BX、CX、DX4个专用寄存器:BP、SP、SI、DI标

6、志寄存器(PSW):9个标志位,其中6个条件标志位用于存放结果状态,算术逻辑单元:16 位加法器,用于对寄存器和指令操作数进行算术或逻辑运算,EU 控制系统:接受从总线接口单元的指令队列中取来的指令代码,对其译码和向 EU 内各有关部分发出时序命令信号,协调执行指令规定的操作。微处理办法器体系和结构取指令 指令译码 执行指令指令的一般执行过程:微处理办法器体系和结构(三)、流水线工作方式8086/8088取指部分与执行部分是分开的。在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队;在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CP

7、U的利用率和整个运行速度。8086/8088微处理器:BIU和EU分开,取指和执行可以重迭,大大减少了等待取指所需的时间,提高CPU的利用率。微处理办法器体系和结构(三)、流水线工作方式(cont.)对于8080与8085及较早的8位微处理器:程序执行由取指令和执行指令的循环来完成的。每条指令执行完后CPU必须等待到下条指令取出来后才能执行。微处理办法器体系和结构二、8086/8088的寄存器结构 8086内部寄存器按其功能可分为:通用寄存器(8个),段寄存器(4个),控制寄存器(2个)。8086CPU中有14个16位的寄存器。8个16位通用寄存器;2个16位指针寄存器;2个16位的变址寄存器

8、;4个16位的段寄存器;1个16位指令指针;1个16位标志寄存器。8086/8088 CPU的内部寄存器如图2-2所示。 图2-2 8086/8088 CPU内部寄存器 15 8 7 0SPBPSIDI堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指针和变址寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器段寄存器组CSDSSSES指令指针寄存器标志寄存器控制寄存器组IPFLAGS累加器基址寄存器计数寄存器数据寄存器数据寄存器AX AH ALBX BH BLCX CH CLDX DH DL通用寄存器组微处理办法器体系和结构 通用寄存器的包括数据寄存器、地址指针寄存器和变址寄存器。

9、数据寄存器数据寄存器有AX、BX、CX、DX都是16位寄存器,这四个16位寄存器可分为高8位和低8位两部分使用,也就是说也可作8位寄存器使用。高8位表示成:AH、BH、CH、DH,低8位表示成:AL、BL、CL、DL。参与运算的数是16位数时,可用AX、BX、CX、DX中的任意一个描述,如果参与运算的数据是8位数时可用AH、AL、BH、BL、CH、CL、DH、DL中的任意一个描述。一般情况下,这四个数据寄存器就是用于存放参与运算的数据或运算结果的。但这四个寄存器又有自己特殊的用法。1.通用寄存器微处理办法器体系和结构 AX(Accumulator)累加器,是指令系统中应用最多的寄存器,输入/输

10、出只能用AX寄存器传递数据,它经常存放运算的中间结果,并参与下次运算,所以叫累加器。 BX(base Register)基址寄存器,它通常用来存放内存的基地址,用于寄存器寻扯。 CX(count Register)计数寄存器,在循环和串操作指令中,用于计数重复次数。 DX(Data Register)数据寄存器,通常用来存放运算结果。如乘法运算后DX与AX合起来存放32位数的运算结果,其中DX存放高16位。在输入/输出操作中,可用DX作为端口地址的寄存器间接寻址。微处理办法器体系和结构 地址指针寄存器 地址指针寄存器有SP和BP两个。 SP(stack pointer)叫堆栈指示器,用于指示当

11、前堆段中栈顶所在的存储单元地址。(堆栈在后面介绍)。 BP(base pointer)叫基址指示器,用于指示当前堆栈段中一个数据区基址的偏移地址,通过它间接寻址可对堆栈段中的某个数据进行存取。 SP和BP只能用于堆栈段,不能指示其它段。(存储器是按段管理的,后续介绍)。但SP和BP应用上是有区别的,SP可用于PUSH、POP、CALL、RET等指令,而BP不能用于这些令(后续介绍)。微处理办法器体系和结构 变址寄存器SI、DI SI(source Index)叫源变址寄存器,一般用于源操作数当前数据段中某个地址的偏移地址。 DI(Destination index)叫目标变址寄存器,一般用于目

12、标操作数当前附加段(本数据段)中某个地址的偏移地址。 在字符串操作中,SI用于存放源串操作数的偏移地址,这个串一定是在数据段DS。DI用于存放目标串操作数的偏移地址,这个串一定是在附加段ES。 在寄存器间寻址时,经常用DI、SI加上一个位移量来改变存储器的地址,因此叫变址寄存器。 指针寄存器和变址寄存器与数据寄存器样,可以参与算术和逻辑运算,但指针寄存器和变址寄存器只能用于16位计算,不能分成8位。微处理办法器体系和结构 段寄存器包括CS、SS、DS、ES,用于指示当前段的段基址。 CS(Code Segment)叫代码段寄存器,用于指示当前的代码段(程序段)的起始地址段基址。 DS (Dat

13、e Segment)叫数据段寄存器,用于指示当前的数据段的段基址。 SS(Stack Segment)叫堆栈段寄存器,用于指示当前的堆栈段的段基址。 ES (Extra Segment)叫附加段寄存器,用于指示当前的附加段的段基址。 CS段一般用于存放CPU执行的程序代码。DS一般用于存放程序中的变量和数据。SS段一般用于存放压栈的信息。ES段一般用于存放参与运算结果。 2.段寄存器(segment)微处理办法器体系和结构 控制寄存器有IP和FLAGS。 IP(Instruction Pointer)叫指令指针寄存器(程序指示器)。用于存放预取指令的偏移地址。CPU从代码段中偏移地址为IP的内

14、存单元中取出指令代码的一个字节后,IP自动加I,指向指令代码的下一个字节。用户程序不能直接访问IP。 FLAGS(Flags)叫标志寄存器,用于存放运算结果的标志。FLAGS是16位寄存器,用其中的9位来描述9个标志。通常叫标志9个标志可分为状态标志位和控制标志位。如图2-3所示。 OF DF IF TF SF ZF AF PF CF3.控制寄存器图2-3 8086标志寄存器FLAGS微处理办法器体系和结构状态标志位有: CF(Corry Flag)进位标志位(借位标志位):当进行加法(或减法)运算时,若最高位发生进位来借位,则CF=1,否则CF=0。 PF( Parity Flag)寄标志位

15、:当逻辑运算结果中“1”的个数为偶数时,PF=1,为奇数时,PF=0。 AF(Auxiliary Carry)半进位标志位:在8(16)位加减法运算中,低4(8)位向高位有进位或借位,则AF=1,否则AF=0。 ZF(Zero Flag)零标志位:当运算结查为0时,ZF=1,否则ZF=0。 SF(Sign Flag)符号标志位:当运算结果最高位是1(即函数)时,SF=1,否则SF=0。 OF(Over Flag)溢出标志位:当运算结果超出了带符号数的范围,即溢出时,OF=1,否则OF=0。8位带符号数范围是-128+127。16位带符号数的范围是-32768+32767。这6个状态标志位状态是

16、计算机运算后,自动生成的不是人为赋予的,当然也可通过POPF改变各状态值。(后续介绍)微处理办法器体系和结构 控制标志位 控制标志位被设置后,可完成某些控制操作。 TF(Trap Flag)跟踪标志位:是为调试程序而设置的。若TF=1,则使8086CPU处于单步工作方式,在这种工作方式下,CPU每执行完一条指令,就自动产生一个内部中断,处理机转去执行一个中断服务程序。检查程序中的每条指令执行情况,当TF=0时,CPU正常执行程序。 IF(Interrupt Flag)中断允许标志位(开中断标志位):若将IF设置为1时(IF=1),8086CPU开中断,CPU允许外部的可屏蔽中断源的中断请示,若

17、将IF清零(IF=0),8086CPU关中断,CPU禁止外部可屏蔽中断的请求。 IF只对可屏蔽中断起作用,对非屏蔽中断和内部中断都不起作用。 DF(Direction Flag)方向标志位:方向标志位用于控制串操作指令中SI(或DI)的修改方向。当DF设置为1(DF=1)时,SI(或DI)减量,当DF清零(DF=0)时,SI(或DI)增量,因为SI(或DI)描述串操作的偏移地址,当SI(DI)减量时,串是由高地址向低地址方向遵序执行。后续指令中将详细介绍。 微处理办法器体系和结构在调试程序时,DEBUG提供了测试标志位的手段,用符号表示标志位的值,每种标志位的符号如下表:DEBUG不提供TF的

18、符号用于单步方式操作。微处理办法器体系和结构例1:执行两个数的加法,分析对标志位的影响。标志: 运算结果最高位为0SF=0; 运算结果本身0 ZF=0低8位中1的个数为奇数个 PF=0; 最高位没有进位 CF=0第三位向第四位无进位 AF=0;次高位向最高位没有进位 ,最高位向前没有进位 , OF=0。微处理办法器体系和结构例2 若AL = 3BH,AH = 7DH,试指出AL中的内容和AH中的内容相加、相减后,标志CF、AF、PF、SF、OF和ZF的状态。 解:(1)AL + AH 0 0 1 1 1 0 1 1 AL+ 0 1 1 1 1 1 0 1 AH 1 0 1 1 1 0 0 0由

19、运算结果可知:CF = 0 (无进位);AF = 1(有辅助进位);PF = 1(有偶数个1);SF = D7 = 1(运算结果符号位为1);OF = 1 (同号相加,结果的符号与两操作数符号相反,有溢出);ZF = 0 (运算结果不为0)。 (2)AL AH 0 0 1 1 1 0 1 1 AL- 0 1 1 1 1 1 0 1 AH 1 0 1 1 1 1 1 0由运算结果可知:CF = 1(有借位);AF = 1(有辅助借位);PF = 1(有偶数个1);SF = 1(符号位为1);OF = 0(同号相减,无溢出);ZF = 0(运算结果不为0)。 微处理办法器体系和结构三、8086/8

20、088的存储器组织微处理办法器体系和结构(一)、存储器结构8086/8088系统中存储器的每一个存储单元(字节)都有一个独立的地址编码,地址编码采用20位二进制表示,地址译码器是根据地址编码才找到目标存储单元的。20位二进制地址编码的范围的十六进制表示为00000HFFFFFH,最多可表示 (1MB)地址编码唯一的存储单元,把20位二进制表示的地址称为物理地址。 38F04H存储单元内容存储单元地址微处理办法器体系和结构 内存单元的地址和内容存储单元地址:按照字节编址微处理办法器体系和结构存储单元的内容:一个存储单元有效的信息。机器字长是16位, 大部分数据以字节为单位表示, 一个字存入存储器

21、占有相继的二个单元: 低位字节存入低地址,高位字节存入高地址。 字单元的地址采用它的低地址来表示。例:字单元 :0004H=1234H, 字节单元 :0004H=34H 同一个地址既可以看作字节单元地址, 又可看作字单元地址,需要根据使用情况确定。字单元地址:可以是偶数也可以是奇数,微处理办法器体系和结构8086系统的存储体结构 8088系统的存储体结构 8086/ 8088系统的存储体结构 微处理办法器体系和结构(二)、存储器的分段结构和物理地址的形成 8086有20条地址线,可以寻址1M内存空间。地址从00000HFFFFFH。但8086CPU内部的地址寄存器都是16位的,最多能寻址64K

22、字节,为了能寻址1M字节,8086采用分段技术。分段技术是把存储器可分成代码段CS、堆栈段SS、数据段DS和附加段ES四种。每段为64KB,段与段可以重叠,可以交叉,也可以没有联系。如图2-4所示。存储器分段管理后,每个单元的地址都可以用两个形式的地址来表示,实际地址(物理地址)和逻辑地址。微处理办法器体系和结构2-4 存储器的逻辑分段结构微处理办法器体系和结构 例:已知当前有效的代码段、堆栈段、数据段和附加段的段基址分别为1055H、EFF0H、250AH和8FFBH,它们在存储器中的分布情况如图2-5所示。微处理办法器体系和结构 物理地址:是由20位地址或状态来表示的地址。即20位二进数来

23、表示。CPU与存储器交换信息时,使用的是物理地址。 逻辑地址:是把20位地址分成段基址和偏移地址两部分表示,即段:偏移。这两部分都是无符号的16位二进制数。例如:0001H:2000H。程序是以逻辑地址来编址的。 物理地址的形成是通过CPU内部的BIU部件中的地址加法器运算出来的,如图2-6。微处理办法器体系和结构从图中可看出物理地址可由下式计算: 物理地址=段基址16+偏移地址。 例如:CS=2000H IP=2200H,则物理地址为:20000H+2200H=22200H。2-6 8086物理地址的形成微处理办法器体系和结构已知CS=1055H,DS=250AH,ES=2EF0H,SS=8

24、FF0H, DS段有一操作数,其偏移地址=0204H, 1)画出各段在内存中的分布 2)指出各段首地址 3)该操作数的物理地址=?10550H250A0H2EF00H8FF00HCSSS CSDSES解: 各段分布及段首址见右图所示。 操作数的物理地址为: 250AH10H+0204H = 252A4H例:微处理办法器体系和结构 四个段寄存器可以分别描述当前使用的段的起始字节单元。偏移地址可由16位寄存器来描述。一般情况下CS段的偏移地址用IP描述,SS段的偏移地址由SP和BP描述。DS段的偏移地址由BX或SI加上位移量来描述,ES段的偏移地址可由BX和DI加上位移量来描述。如图2-7所示。2

25、-7 段寄存器和其它寄存器组合指向存储单元微处理办法器体系和结构段超越前缀指令没有指明时,一般的数据访问在DS段;使用BP访问主存,则在SS段默认的情况允许改变,需要使用段超越前缀指令;8086指令系统中有4个:CS:;代码段超越,使用代码段的数据SS: ;堆栈段超越,使用堆栈段的数据DS: ;数据段超越,使用数据段的数据ES: ;附加段超越,使用附加段的数据微处理办法器体系和结构段超越的示例没有段超越的指令实例:MOV AX,2000H;AXDS:2000H;从默认的DS数据段取出数据采用段超越前缀的指令实例:MOV AX,ES:2000H;AXES:2000H;从指定的ES附加段取出数据微

26、处理办法器体系和结构(三)、信息分段存储与段寄存器操作类型正常使用(隐含)段基址可替换段地址偏移地址物理地址计算取指令CS无IP(CS)16d+(IP)堆栈操作SS无SP(SS) 16d+(SP)BP间址SSCS,DS,ES有效地址EA(SS) 16d+EA存取变量DSCS,ES,SS有效地址EA(DS )16d+EA源字符串DSCS,ES,SSSI(DS) 16d+(SI)目标字符串ES无DI(ES) 16d+(DI)逻辑地址来源微处理办法器体系和结构四、80868088系统中的堆栈堆栈是在计算机中的RAM存储区开辟的一个特定区域,按照“后进先出”的原则组织。主要用于暂存数据和断点地址。1堆

27、栈的结构 存储区的存储方式采用一端固定(称为栈底),另一端浮动(称为栈顶)的方式,即只允许在活动端进行数据的输入或删除。 2堆栈的操作 堆栈段在存储区中的位置由堆栈段寄存器SS和堆栈指针SP来确定。SS中存放堆栈段的段基址,SP中存放栈顶的地址,此地址表示栈顶离段首址的偏移量,因此用SP指示栈元素进栈和出栈的偏移地址的变化。 堆栈段首地址SS 10000H11FFBH11FFDH11FFEH11FFFH11FFAH11FFCHSP 12000H栈底64KB图2-8 8086堆栈在存储器中的分布情况微处理办法器体系和结构(1)建栈。 建立堆栈就是设定堆栈的段基址和栈底,用户可以通过数据传送指令把

28、堆段的段基址送入段寄存器SS,把栈底的偏移地址送入堆栈指针寄存器SP。此时栈中无数据,是一个空栈。 若SS = 1000H,SP = 2000H,则堆栈的情况如图2-8所示,建立堆栈指令为:MOV AX,1000H MOV SS, AX MOV SP,2000H (2)入栈。入栈就是把数据压入堆栈,又称进栈。8086微处理器的入栈操作以字为单位。入栈操作分为两步:将堆栈指针寄存器SP的内容减2,即是栈顶向低地址方向移动一个字单元,指向新栈顶。即:SP SP 2;将一个字数据推入到SP所指向的栈顶字单元,即:SP 字数据。 注意:入栈字的低字节存入低地址单元,高字节存入高地址单元。 微处理办法器

29、体系和结构例2 若SS = 2000H,当前SP = 1234H,将寄存器AX中的数据7C9FH压入堆栈。操作如下:修改SP,使其指向新栈顶,即:SP = 1232H。AX的内容压入栈顶字单元。即:AL送21232H单元,AH送21233H单元。其操作如图所示。5CH 20HSP1232H21232H21233H21234H9FH7CHXXAX入栈操作设SS = 2000Ha)SP1234H21232H21233H21234H20H5CHXXAX出栈操作b)(3)出栈。出栈是从堆栈中弹出数据。出栈的操作顺序与入栈相反。将栈顶的一个字送寄存器或存储器,即:寄存器/存储器 SP;堆栈指针寄存器SP的内容加2,指向新栈顶,即:SP (SP)+ 2 若:若SS = 2000H,当前SP = 1232H,将栈顶数据弹出送寄存器AX。微处理办法器体系和结构第三节 Intel 80386微处理器的结构微处理办法器体系和结构一、80386微处理器的体系结构80386的主要特性微处理办法器体系和结构80386微处理器的功能结构微处理办法器体系和结构8086到80386的改进:增加了保护方式;引入了多任务、任务切换的概念;引入了四级特权机

温馨提示

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

评论

0/150

提交评论