第二章 微处理器体系与结构

62

Upload: birch

Post on 05-Feb-2016

77 views

Category:

Documents


0 download

DESCRIPTION

第一节 Intel 微处理器的概要历史. 第二章 微处理器体系与结构. 第二节 Intel 8086/8088 微处理器的结构. 第三节 Intel 80386 微处理器的结构. 第一节 Intel 微处理器的概要历史. 8086 初始芯片时钟频率为 4.77MHz 内部数据总线和外部数据总线都是 16 位 地址总线为 20 位 ,可最大寻址 1MB 的存储空间 80386 80x86 家族的第一个 32 位 处理器 内部和外部数据总线都是 32 位 地址总线也是 32 位 ,可寻址高达 4GB 内存 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第二章 微处理器体系与结构
Page 2: 第二章 微处理器体系与结构
Page 3: 第二章 微处理器体系与结构
Page 4: 第二章 微处理器体系与结构
Page 5: 第二章 微处理器体系与结构

8086 初始芯片时钟频率为 4.77MHz 内部数据总线和外部数据总线都是 16 位 地址总线为 20 位,可最大寻址 1MB 的存储空间

80386 80x86 家族的第一个 32 位处理器 内部和外部数据总线都是 32 位 地址总线也是 32 位,可寻址高达 4GB 内存 具有实模式和保护模式外,还增加了一种叫虚拟 86 的

工作方式,可以通过同时模拟多个 8086 处理器来提供多任务能力

Page 6: 第二章 微处理器体系与结构

第二节 第二节 INTEL 8086/8088INTEL 8086/8088 微处理器的结微处理器的结构构

Page 7: 第二章 微处理器体系与结构

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

Page 8: 第二章 微处理器体系与结构
Page 9: 第二章 微处理器体系与结构

执行单元 EU由 8 个通用寄存器、 1 个标志寄存器、算术逻辑运算单元 ALU及 EU 控制电路组成; EU从 BIU指令队列寄存器中获得指令和待处理数据进行操作。将指令代码译码后,发出相应的控制信息,将数据在 ALU 中进行运算,运算结果的特征保留在标志寄存的 FLAGS 中。

总线接口单元 BIU 包括 4 个段寄存器、 1 个指令指针寄存器、 1 个与 EU 通读寄存器。一个先入先出的 6个字节( 8088是 4 个字节)指令队列。总线控制逻辑电路及 20 位实际物理地址计算的加法器。

1 .执行单元 EU

2. 总线接口单元 BIU

Page 10: 第二章 微处理器体系与结构

功能:负责与 Memory、 I/O 端口传送数据。 取指令时,从存储器指定地址取出指令送入指令

队列排队。 执行指令时,根据 EU 命令对指定存储器单元或

I/O 端口存取数据。

Page 11: 第二章 微处理器体系与结构

组成 4 个段地址寄存器( CS、 DS、 ES、 SS ) 16 位指令指针寄存器 IP 20 位的地址加法器 (16d 段地址 + 偏移地址=

物理地址 ) 6 字节( 8086 )或 4 字节( 8088 )的指令队

列 总线控制电路 :

• 处理器与外界总线联系的转接电路。包括三组总线:20 位地址总线, 16 位双向数据总线,一组控制总线。

Page 12: 第二章 微处理器体系与结构

指令队列 8086 的指令队列为 6 个字节 , 8088 的指令队列为 4 个字节。

不论是 8086 还是 8088 都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使 BIU 具有预取指令的功能,是一种先进先出( FIFO )的数据结构。

Page 13: 第二章 微处理器体系与结构

指令执行顺序 顺序指令执行:指令队列存放紧接在执行指令

后面的那一条指令。 执行转移指令: BIU 清除指令队列中的内容,

从新的地址取入指令,立即送往执行单元,然后再从新单元开始重新填满队列。

Page 14: 第二章 微处理器体系与结构

功能 执行指令,进行全部算术逻辑运算、完全偏移地址的计算 向总线接口单元 BIU 提供指令执行结果的数据和偏移地址,并对

通用寄存器和标志寄存器进行管理。 组成:

4 个通用寄存器: AX、 BX、 CX、 DX 4 个专用寄存器: BP、 SP、 SI、 DI 标志寄存器( PSW ):

• 9 个标志位,其中 6 个条件标志位用于存放结果状态, 算术逻辑单元:

• 16 位加法器,用于对寄存器和指令操作数进行算术或逻辑运算,

EU 控制系统:• 接受从总线接口单元的指令队列中取来的指令代码,对其译码

和向 EU 内各有关部分发出时序命令信号,协调执行指令规定的操作。

Page 15: 第二章 微处理器体系与结构
Page 16: 第二章 微处理器体系与结构

8086/8088 取指部分与执行部分是分开的。 在一条指令的执行过程中可以取出下一条(或多条)指

令,指令 在指令队列中排队; 在一条指令执行完成后 , 就可以立即执行下一条指令,减少 CPU 为取指令而等待的时间,提高 CPU 的利用率和整个运行速度。

8086/8088 微处理器 : BIU和 EU 分开,取指和执行可以重迭, 大大减少了等待取指所需的时间,提高 CPU 的利用率。

Page 17: 第二章 微处理器体系与结构

对于 8080与 8085 及较早的 8 位微处理器 : 程序执行由取指令和执行指令的循环来完成的。 每条指令执行完后 CPU 必须等待到下条指令取出

来后才能执行。

Page 18: 第二章 微处理器体系与结构

8086 内部寄存器按其功能可分为:通用寄存器( 8个),段寄存器( 4 个),控制寄存器 (2 个)。

8086CPU 中有 14个 16 位的寄存器。8 个 16 位通用寄存器;2 个 16 位指针寄存器;2 个 16 位的变址寄存器;4 个 16 位的段寄存器;1 个 16 位指令指针;1 个 16 位标志寄存器。

8086/8088 CPU 的内部寄存器如图 2-2 所示。

Page 19: 第二章 微处理器体系与结构

通用寄存器的包括数据寄存器、地址指针寄存器和变址寄存器。

⑴ 数据寄存器数据寄存器有 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. 通用寄存器

Page 20: 第二章 微处理器体系与结构

AX( Accumulator )累加器,是指令系统中应用最多的寄存器,输入 / 输出只能用 AX 寄存器传递数据,它经常存放运算的中间结果,并参与下次运算,所以叫累加器。

BX( base Register )基址寄存器,它通常用来存放内存的基地址,用于寄存器寻扯。

CX( count Register )计数寄存器,在循环和串操作指令中,用于计数重复次数。

DX( Data Register )数据寄存器,通常用来存放运算结果。如乘法运算后 DX与 AX 合起来存放 32位数的运算结果,其中 DX 存放高 16 位。在输入 / 输出操作中,可用 DX 作为端口地址的寄存器间接寻址。

Page 21: 第二章 微处理器体系与结构

⑵ 地址指针寄存器 地址指针寄存器有 SP和 BP 两个。 SP( stack pointer )叫堆栈指示器,用于指示当

前堆段中栈顶所在的存储单元地址。(堆栈在后面介绍)。

BP( base pointer )叫基址指示器,用于指示当前堆栈段中一个数据区基址的偏移地址,通过它间接寻址可对堆栈段中的某个数据进行存取。

SP和 BP 只能用于堆栈段,不能指示其它段。(存储器是按段管理的,后续介绍)。但 SP和 BP 应用上是有区别的, SP 可用于 PUSH、 POP、 CALL、 RET 等指令,而 BP 不能用于这些令(后续介绍)。

Page 22: 第二章 微处理器体系与结构

⑶ 变址寄存器 SI、DI SI( source Index )叫源变址寄存器,一般用于源操作数当前数据段中某个地址的偏移地址。 DI(Destination index )叫目标变址寄存器,一般用于目标操作数当前附加段(本数据段)中某个地址的偏移地址。 在字符串操作中, SI 用于存放源串操作数的偏移地址,这个串一定是在数据段 DS。DI 用于存放目标串操作数的偏移地址,这个串一定是在附加段 ES 。 在寄存器间寻址时,经常用 DI、 SI 加上一个位移量来改变存储器的地址,因此叫变址寄存器。 指针寄存器和变址寄存器与数据寄存器样,可以参与算术和逻辑运算,但指针寄存器和变址寄存器只能用于 16 位计算,不能分成 8 位。

Page 23: 第二章 微处理器体系与结构

段寄存器包括 CS、 SS、 DS、 ES ,用于指示当前段的段基址。

CS( Code Segment )叫代码段寄存器,用于指示当前的代码段(程序段)的起始地址段基址。

DS (Date Segment) 叫数据段寄存器,用于指示当前的数据段的段基址。

SS( Stack Segment )叫堆栈段寄存器,用于指示当前的堆栈段的段基址。

ES (Extra Segment) 叫附加段寄存器,用于指示当前的附加段的段基址。

CS 段一般用于存放 CPU 执行的程序代码。 DS 一般用于存放程序中的变量和数据。 SS 段一般用于存放压栈的信息。 ES 段一般用于存放参与运算结果。

2. 段寄存器( segment )

Page 24: 第二章 微处理器体系与结构

控制寄存器有 IP和 FLAGS 。 ⑴IP( Instruction Pointer )叫指令指针寄存器

(程序指示器)。用于存放预取指令的偏移地址。 CPU 从代码段中偏移地址为 IP 的内存单元中取出指令代码的一个字节后, IP 自动加 I ,指向指令代码的下一个字节。用户程序不能直接访问 IP 。

⑵FLAGS( Flags )叫标志寄存器,用于存放运算结果的标志。 FLAGS是 16 位寄存器,用其中的 9 位来描述 9 个标志。通常叫标志 9 个标志可分为状态标志位和控制标志位。如图 2-3 所示。

OF DF IF TF SF ZF AF PF CF

3. 控制寄存器

图 2-3 8086 标志寄存器 FLAGS图 2-3 8086 标志寄存器 FLAGS

Page 25: 第二章 微处理器体系与结构

状态标志位有: CF( Corry Flag )进位标志位(借位标志位):当进行加法

(或减法)运算时,若最高位发生进位来借位,则 CF=1 ,否则CF=0 。

PF ( Parity Flag )寄标志位:当逻辑运算结果中“ 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 个状态标志位状态是计算机运算后,自动生成的不是人为赋予的,当然也可通过 POPF 改变各状态值。(后续介绍)

Page 26: 第二章 微处理器体系与结构

控制标志位 控制标志位被设置后,可完成某些控制操作。 TF( Trap Flag )跟踪标志位:是为调试程序而设置的。若

TF=1 ,则使 8086CPU 处于单步工作方式,在这种工作方式下, CPU每执行完一条指令,就自动产生一个内部中断,处理机转去执行一个中断服务程序。检查程序中的每条指令执行情况,当TF=0 时, CPU正常执行程序。

IF( Interrupt Flag )中断允许标志位(开中断标志位):若将 IF 设置为 1 时( IF=1 ), 8086CPU开中断, CPU允许外部的可屏蔽中断源的中断请示,若将 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)减量时,串是由高地址向低地址方向遵序执行。后续指令中将详细介绍。

Page 27: 第二章 微处理器体系与结构

在调试程序时, DEBUG提供了测试标志位的手段,用符号表示标志位的值,每种标志位的符号如下表:

标志名 1标志为 0标志为

OF ( /溢出 是 否) OV NV

DF / )方向(减量 加量 DN UP

IF ( / )中断 允许 关闭 EI DI

SF ( / )符号 负 正 NG PL

ZF ( /零 是 否) ZR NZ

AF ( /辅助进位 是 否) AC NA

PF ( / )奇偶标志 偶 奇 PE PO

CF ( /进位标志 是 否) CY NC

Page 28: 第二章 微处理器体系与结构

例 1 :执行两个数的加法,分析对标志位的影响。

标志 :

运算结果最高位为 0 SF=0∴ ; 运算结果本身≠ 0 ZF=0∴低 8 位中 1 的个数为奇数个 ∴ PF=0; 最高位没有进位 ∴ CF=0

第三位向第四位无进位 ∴ AF=0;次高位向最高位没有进位 ,最高位向前没有进位 , OF=0∴ 。

Page 29: 第二章 微处理器体系与结构

例 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由运算结果可知: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 )。

Page 30: 第二章 微处理器体系与结构
Page 31: 第二章 微处理器体系与结构

8086/8088 系统中存储器的每一个存储单元(字节)都有一个独立的地址编码,地址编码采用 20 位二进制表示,地址译码器是根据地址编码才找到目标存储单元的。20 位二进制地址编码的范围的十六进制表示为00000H~ FFFFFH ,最多可表示 ( 1MB )地址编码唯一的存储单元,把20 位二进制表示的地址称为物理地址。

8086/8088 系统中存储器的每一个存储单元(字节)都有一个独立的地址编码,地址编码采用 20 位二进制表示,地址译码器是根据地址编码才找到目标存储单元的。20 位二进制地址编码的范围的十六进制表示为00000H~ FFFFFH ,最多可表示 ( 1MB )地址编码唯一的存储单元,把20 位二进制表示的地址称为物理地址。

10110110

38F04H

存储单元内容

存储单元地址202

Page 32: 第二章 微处理器体系与结构

内存单元的地址和内容

存储单元地址:按照字节编址

. . . . . .

1100 1111B

. . . . . .

物理地址 内容

00000H

00001H

00002H

00006H

FFFFFH

Page 33: 第二章 微处理器体系与结构

存储单元的内容:一个存储单元有效的信息。

机器字长是 16 位,

大部分数据以字节为单位表示,• 一个字存入存储器占有相继的二个单元:

低位字节存入低地址,高位字节存入高地址。

字单元的地址采用它的低地址来表示。

例: 字单元 :[0004H]=1234H,

字节单元 :[0004H]=34H

同一个地址既可以看作字节单元地址,

又可看作字单元地址,需要根据使用情况确定。

字单元地址:可以是偶数也可以是奇数,

Page 34: 第二章 微处理器体系与结构

8086/ 80888086/ 8088 系统的存储体结构 系统的存储体结构

Page 35: 第二章 微处理器体系与结构

8086有 20条地址线,可以寻址 1M 内存空间。地址从 00000H~ FFFFFH 。但 8086CPU 内部的地址寄存器都是 16 位的,最多能寻址 64K 字节,为了能寻址 1M 字节, 8086采用分段技术。分段技术是把存储器可分成代码段 CS 、堆栈段 SS 、数据段 DS 和附加段 ES 四种。每段为 64KB ,段与段可以重叠,可以交叉,也可以没有联系。如图 2-4 所示。存储器分段管理后,每个单元的地址都可以用两个形式的地址来表示,实际地址(物理地址)和逻辑地址。

Page 36: 第二章 微处理器体系与结构

2-4 存储器的逻辑分段结构2-4 存储器的逻辑分段结构

Page 37: 第二章 微处理器体系与结构

例:已知当前有效的代码段、堆栈段、数据段和附加段的段基址分别为 1055H、 EFF0H、 250AH和8FFBH ,它们在存储器中的分布情况如图 2-5 所示。

Page 38: 第二章 微处理器体系与结构

物理地址 : 是由 20 位地址或状态来表示的地址。即20 位二进数来表示。 CPU 与存储器交换信息时,使用的是物理地址。

逻辑地址:是把 20 位地址分成段基址和偏移地址两部分表示,即段:偏移。这两部分都是无符号的 16 位二进制数。例如: 0001H: 2000H 。程序是以逻辑地址来编址的。

物理地址的形成是通过 CPU 内部的 BIU 部件中的地址加法器运算出来的,如图 2-6 。

Page 39: 第二章 微处理器体系与结构

从图中可看出物理地址可由下式计算: 物理地址 = 段基址 ×16+ 偏移地址。

例如: CS=2000H IP=2200H ,则物理地址为:20000H+2200H=22200H 。

2-6 8086 物理地址的形成2-6 8086 物理地址的形成

Page 40: 第二章 微处理器体系与结构

已知 CS=1055H, DS=250AH, ES=2EF0H, SS=8FF0H , DS 段有一操作数,其偏移地址 =0204H ,

1)画出各段在内存中的分布 2) 指出各段首地址 3)该操作数的物理地址 =?

10550H

250A0H

2EF00H

8FF00H

CS

SS

CS

DS

ES

解: 各段分布及段首址见右图所示。 操作数的物理地址为: 250AH×10H+0204H = 252A4H

Page 41: 第二章 微处理器体系与结构

四个段寄存器可以分别描述当前使用的段的起始字节单元。偏移地址可由 16 位寄存器来描述。一般情况下 CS 段的偏移地址用 IP 描述, SS 段的偏移地址由 SP和 BP 描述。 DS 段的偏移地址由 BX或 SI 加上位移量来描述, ES 段的偏移地址可由 BX和 DI 加上位移量来描述。如图 2-7 所示。

2-7 段寄存器和其它寄存器组合指向存储单元2-7 段寄存器和其它寄存器组合指向存储单元

Page 42: 第二章 微处理器体系与结构

没有指明时,一般的数据访问在 DS 段;使用 BP访问主存,则在 SS 段

默认的情况允许改变,需要使用段超越前缀指令; 8086 指令系统中有 4 个: CS: ;代码段超越,使用代码段的数据 SS: ;堆栈段超越,使用堆栈段的数据 DS: ;数据段超越,使用数据段的数据 ES: ;附加段超越,使用附加段的数据

Page 43: 第二章 微处理器体系与结构

没有段超越的指令实例:MOV AX,[2000H] ; AX←DS:[2000H]

;从默认的 DS 数据段取出数据

采用段超越前缀的指令实例:MOV AX,ES:[2000H] ; AX←ES:

[2000H] ;从指定的 ES附加段取出数据

Page 44: 第二章 微处理器体系与结构

操作类型 正常使用(隐含)段基址

可替换段地址

偏移地址

物理地址计算

取指令 CS 无 IP (CS)16d+(IP)

堆栈操作 SS 无 SP (SS) 16d+(SP)

BP 间址 SS CS,DS,ES

有效地址EA

(SS) 16d+EA

存取变量 DS CS,ES,SS

有效地址EA

(DS )16d+EA

源字符串 DS CS,ES,SS

SI (DS) 16d+(SI)

目标字符串

ES 无 DI (ES) 16d+(DI)

逻辑地址来源

Page 45: 第二章 微处理器体系与结构

堆栈是在计算机中的 RAM 存储区开辟的一个特定区域,按照“后进先出”的原则组织。主要用于暂存数据和断点地址。1 .堆栈的结构 存储区的存储方式采用一端固定(称为栈底),另一端浮动(称为栈顶)的方式,即只允许在活动端进行数据的输入或删除。 2 .堆栈的操作 堆栈段在存储区中的位置由堆栈段寄存器 SS 和堆栈指针 SP 来确定。 SS 中存放堆栈段的段基址, SP 中存放栈顶的地址,此地址表示栈顶离段首址的偏移量,因此用 SP 指示栈元素进栈和出栈的偏移地址的变化。

图 2-8 8086堆栈在存储器中的分布情况图 2-8 8086堆栈在存储器中的分布情况

Page 46: 第二章 微处理器体系与结构

( 1 )建栈。 建立堆栈就是设定堆栈的段基址和栈底,用户可以通过数据传送指令把堆段的段基址送入段寄存器 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] ← 字数据。

注意:入栈字的低字节存入低地址单元,高字节存入高地址单元。

Page 47: 第二章 微处理器体系与结构

例 2 若 SS = 2000H ,当前 SP = 1234H ,将寄存器 AX 中的数据7C9FH压入堆栈。操作如下:①修改 SP ,使其指向新栈顶,即: SP = 1232H 。

②AX 的内容压入栈顶字单元。即: AL送 21232H 单元, AH送 21233H单元。其操作如图所示。

( 3 )出栈。出栈是从堆栈中弹出数据。出栈的操作顺序与入栈相反。①将栈顶的一个字送寄存器或存储器,即:寄存器 / 存储器 ← [SP] ;②堆栈指针寄存器 SP 的内容加 2 ,指向新栈顶,即: SP ← ( SP)+ 2 若:若 SS = 2000H ,当前 SP = 1232H ,将栈顶数据弹出送寄存器 AX 。

Page 48: 第二章 微处理器体系与结构
Page 49: 第二章 微处理器体系与结构

80386 的主要特性

Page 50: 第二章 微处理器体系与结构
Page 51: 第二章 微处理器体系与结构
Page 52: 第二章 微处理器体系与结构
Page 53: 第二章 微处理器体系与结构

80386 中共有 7类 32 个寄存器,它们是:•通用寄存器:EAX, EBX, ECX, EDX, ESP, EBP , ESI, EDI

•段寄存器: CS, DS, ES, SS, FS, GS

•指令指针和标志寄存器: EIP, EFLAGS

•控制寄存器: CR0, CR1, CR2, CR3

•系统地址寄存器: GDTR, LDTR, IDTR, TR

•调试寄存器:DR0, DR1, DR2, DR3, DR4, DR5, DR6, DR7

•测试寄存器: TR6, TR7 。

Page 54: 第二章 微处理器体系与结构

选择子 T1 RPL

15 3 2 1 0

Page 55: 第二章 微处理器体系与结构
Page 56: 第二章 微处理器体系与结构

80386中MMU 增加了分页管理的功能,分页机制可以将线性地址转换为物理地址。

•内存的分页管理

在保护方式下,控制寄存器 CR0中 PE=1 时,可以 通 过设置 PG 位 来 控 制 分页机制 是否启用 :PG=1 ,分页机制启动; PG=0 ,则关闭分页机制。

Page 57: 第二章 微处理器体系与结构
Page 58: 第二章 微处理器体系与结构
Page 59: 第二章 微处理器体系与结构

实地址方式:系统启动后, 80386自动进入实地址方式。此方式下,采用类似于 8086 的体系结构

保护方式 :是指在执行多任务操作时,对不同任务使用的虚拟存储器空间进行完全的隔离,保护每个任务顺利执行。

虚拟 8086 方式 :是指一个多任务的环境,即模拟多个 8086 的工作方式。

Page 60: 第二章 微处理器体系与结构
Page 61: 第二章 微处理器体系与结构
Page 62: 第二章 微处理器体系与结构