80386微处理器资料课件_第1页
80386微处理器资料课件_第2页
80386微处理器资料课件_第3页
80386微处理器资料课件_第4页
80386微处理器资料课件_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

80386微处理器

(参考郁慧娣书第9章9.2、9.3、9.4和第3版教材第8章8.2)80386微处理器

(参考郁慧娣书第9章9.2、9.3、1

8.280386微处理器80386是一种与16位的80286相兼容的第一个高性能全32位微处理器,它代表了体系结构的重要进步——从16位体系结构过渡到32位体系结构。80386采用高速CHMOSⅢ1.5μm技术,132条引出线用网格阵列式封装在陶瓷片内,其耗散功率在1.5w到3.0w之间。

8.280386微处理器802一、80386的特点

1.80386芯片在硬件结构上由6个逻辑单元组成。它们按流水线方式工作,运行速度可达到4MIPS。

2.80386有三种方式:实方式、保护方式、V86方式

。3.硬件支持段式管理和页式管理,易于实现虚拟存储系统。

4.硬件支持多任务,一条指令可以完成任务切换。

5.特权保护机制

4级特权级:0级最优先,其次为1,2和3级。一、80386的特点1.80386芯片在硬件结构上3二、80386的内部结构二、80386的内部结构41.

总线接口部件(BIU:BusInterfaceUnit)。2.

指令预取部件(CPU:CodePrefetchUnit)。3.

指令译码部件(IDU:InstructionDecodeUnit)。4.

执行部件(EU:ExecutionUnit)。它可进一步分为控制部件(ControlUnit),保护测试部件(ProtectionTestUnit)和数据处理部件(DataUnit)3部分。5.

段管理部件(SU:SegmentUnit)。6.页管理部件(PU:PagingUnit)。1.总线接口部件(BIU:BusInterfaceU5三、80386的寄存器结构

80386有7类寄存器: 通用寄存器、段寄存器、指令指针和标志寄存器、控制寄存器、系统地址寄存器、调试寄存器以及测试寄存器。 三、80386的寄存器结构 80386有7类寄存器:6(一)通用寄存器

80386有8个32位的通用寄存器,分别命名为EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。(一)通用寄存器80386有8个32位7(二)段寄存器和段描述符高速缓存器

80386增加了FS和GS两个新的数据段寄存器。

段寄存器里存放的不再是段基址的高16位,而是选择器(P288图9.7)。b15b14…………b4b3b2b1b0索引(13位)TI(0:GDT;1:LDT)RPL(二)段寄存器和段描述符高速缓存器 80386增加了FS8 80386中有一个32位的指令指针(EIP)和一个32位的标志寄存器(EFLAGS)。 80386工作在实模式时采用16位的指令指针IP。

EFLAGS的低12位与8086标志寄存器FLAGS完全相同。高20位中设置了4个新的标志。(三)指令指针和标志寄存器图9.8保护方式标志寄存器(P288) 80386中有一个32位的指令指针(EIP)和一个329(四)系统地址寄存器和系统段寄存器

GDTR——

全局描述符表寄存器

IDTR——

中断描述符表寄存器

LDTR——

局部描述符表寄存器

TR——任务寄存器(四)系统地址寄存器和系统段寄存器 GDTR——全局描10全局描述符表寄存器(GDTR)(图9.2)全局描述符表寄存器(GDTR)(图9.2)11例1.

如果GDTR的内容为200000001FFFh,请给出GDT的起始地址、结束地址、表的长度。表中放了多少个描述符?最后一个描述符的地址范围?解:GDT的起始地址

=20000000h

GDT的结束地址

=20000000h+1FFFh=20001FFFh

GDT表长

=1FFFh+1=2000h

表中描述符个数

=2000h÷8=400h=1024 最后一个描述符的地址范围:20001FFFh-7=20001FF8h~20001FFFh

例1.如果GDTR的内容为200000001FFFh,请给12中断描述符表寄存器(IDTR)(图9.3)中断描述符表寄存器(IDTR)(图9.3)13局部描述符表寄存器(LDTR)(图9.4)局部描述符表寄存器(LDTR)(图9.4)14例2.假设GDT的基地址为01002000h,LDTR=2108h,问LDT描述符的地址范围?解:LDTR=0010000100001000

TI=0,LDT描述符在GDT中

索引

=0010000100001

LDT描述符的起始地址:GDT的基地址+索引×8=01002000h+0010000100001×8

=01004108h

LDT描述符的地址范围(占8字节): 01004108h~0100410Fh例2.假设GDT的基地址为01002000h,LDTR=15任务寄存器(TR)(图9.6)任务寄存器(TR)(图9.6)16例3.假设GDT的基地址为00011000h,TR=3208h,问TSS描述符的地址范围?解:TR=0011001000001000

TI=0,TSS描述符在GDT中

索引

=0011001000001

TSS描述符的起始地址:GDT的基地址+索引×8=00011000h+0011001000001×8

=00014208h

TSS描述符的地址范围(占8字节): 00014208h~0001420Fh例3.假设GDT的基地址为00011000h,TR=3217(五)控制寄存器

80386中有3个32位的控制寄存器CR0、CR2和CR3,用于保存机器的各种全局性状态,这些状态影响系统所有任务的运行。

CR1未定义,留作备用。1.CR0——控制寄存器0 定义了6个控制和状态标志。(五)控制寄存器 80386中有3个32位的控制寄存器18PE(位0)和PG(位31)——保护控制位。TS——任务切换位每当任务切换时,处理器将把TS置为1。MP——监控协处理器位MP为1时,表示有协处理器在工作。EM——模拟协处理器控制位EM为1时,表示用软件仿真协处理器。ET——协处理器扩展类型

0:80287协处理器;1:80387协处理器;PE(位0)和PG(位31)——保护控制位。192.CR2——控制寄存器2CR2称为页面故障线性地址寄存器,用于发生页面访问异常时报告出错信息。3.CR3——控制寄存器3CR3称为页组目录基址寄存器,用于存放页目录表的物理基地址。如下图所示。(分页时用到)2.CR2——控制寄存器220四、80386的三种工作模式

80386有3种工作模式:

实地址模式(RealAddressMode),简称为实模式;

保护虚拟地址模式(ProtectedVirtualAddressMode),也叫保护模式;

虚拟8086模式(VirtualAddress8086Mode),简称为V86模式。四、80386的三种工作模式 80386有3种工作模式21实地址模式

当80386在刚加电启动或复位时,便由操作系统自动控制进入实模式。

实模式主要是为80386进行初始化用的,为80386保护模式所需要的数据结构做好各种配置和准备。 在实模式下,80386类似于8086的体系结构,与8086兼容。实地址模式 当80386在刚加电启动或复位时,便由操作系统22保护虚拟地址模式

保护模式是80386最常用的、也是最具特色的工作模式。通常在开机或复位后,机器先进入实模式完成初始化,然后就立即切换到保护模式。 保护模式提供了多任务环境中的各种复杂功能以及对复杂存储器组织的管理机制:

1)多用户、多任务;

2)虚拟存储管理;

物理存储空间:4GB;虚拟存储空间:64TB

保护虚拟地址模式 保护模式是80386最23

所谓虚拟存储空间是指程序所占有的存储空间。80386系统中,由于内存容量的限制,并不可能将所有的段都放在内存中的,而必须将大部分段放在海量的外部磁盘上,待执行到相关程序段时再调入内存,将暂时不执行的程序段调出内存。 程序员编写程序时,其程序存入磁盘。这样,从程序员的角度来看,系统中似乎有一个容量很大、速度也相当快的虚拟存储器;当然,它并不是真正的物理上的内存。 3)保护机制; 特权保护机制、不同任务之间的隔离(不同的虚拟存储空间) 所谓虚拟存储空间是指程序所占有的存储空间。8038624虚拟8086模式(1)使80386可以快速地执行多个8086的应用程序。(2)段寄存器的用法和实模式时相同。(3)存储器寻址空间为1MB,可以使用分页机制,支持多任务。在多任务系统中,80386可以使其中的一个或几个任务使用虚拟8086模式。此时,可以使一个任务所用的全部页面定位于某个物理地址空间,而另一个任务所用的页面定位于其他物理地址空间,这样,就把存储器虚拟化了,虚拟8086模式的名称即由此而来。(4)在虚拟8086模式中,程序是在最低特权级(3级)上运行的,因此,80386指令系统中的一些特权指令是不能使用的。虚拟8086模式(1)使80386可以快速地执行多个808625五、80386的存储器管理

80386利用片内的存储管理单元(MemoryManagementUnit,简称MMU

)来实现对存储器系统的两级管理:分段管理(逻辑地址→线性地址)和分页管理(线性地址→物理地址)

。 在两级存储管理中,段的大小可以选择(可以字节或页为单位),根据数据结构和代码模块的大小而确定。 另外,对每个段还可以赋予属性和保护信息,以有效防止在多任务环境下各个模块对存储器的越权访问。五、80386的存储器管理 80386利用片内的存储管26(一)实模式

80386的所有指令在实模式下都有效。其物理地址的形成与8086相同,可寻址的实地址空间只有1MB,所有的段最大容量为64KB。

中断向量表仍设置在00000H~003FFH共计1K字节的存储区内。 系统初始化区在FFFFFFF0H~FFFFFFFFH存储区内。 (一)实模式 80386的所有指令在实模式下都有效。其物27(二)保护模式

保护模式下采用段页式管理机构。(二)保护模式 保护模式下采用段页式管理机构。28

保护模式下采用段页式管理机构。 注意区分逻辑地址、线性地址和物理地址这3者之间的关系。(二)保护模式 保护模式下采用段页式管理机构。(二)保护模式29逻辑地址:16位段选择子+32位有效地址 有效地址=基址+变址×比例因子+位移量

线性地址

由存储器段式管理机构按下式来计算:

线性地址

=

段基地址+有效地址物理地址 页式管理机构不工作时,物理地址=线性地址;页式管理机构工作时,物理地址=F(线性地址)逻辑地址:16位段选择子+32位有效地址30分段管理

为了实现分段管理,80386把有关段的信息存放在一个称为段描述符(简称描述符)的8个字节长的数据结构中,并把系统中所有的描述符编成一张表,以便硬件查找和识别。 80386共设置了3种描述符表,即全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。

分段管理 为了实现分段管理,80386把有关段的信息存放在31

段描述符包括:

段基地址(BaseAddress),规定了线性地址空间中段的起始地址。也可以把基地址看成是段内偏移量为0的线性地址。

段的界限(Limit),表示在虚拟地址中,段内可使用的最大偏移量。

段的属性(Attributes),包括该段是否可读出、写入以及段的特权级等。 有两种类型的段:非系统段、系统段;两种段描述符:非系统段描述符、

系统段描述符。 段描述符包括:32非系统段描述符(P296图9.20)

非系统段指一般的代码段、数据段和堆栈段。(s=1)基地址(B0~B15)界限(L0~L15)属性字节(访问权字节)(8位):B5基地址(32位):B7B4B3B2界限(20位):B6(低4位)B1B0非系统段描述符(P296图9.20) 非系统段指一般3380386微处理器资料课件34例请分析下面的描述符:

6420

80

00

B2

0A

000003FF解:属性字节:B2h=10110010

可写的数据段,DPL=1,在内存,未访问过。

数据段基址:800A0000h

界限:003FFh例请分析下面的描述符:8000B35

系统段描述符(P299图9.23)

系统段描述符也称为特殊段描述符(S位为0)。 系统段包括任务状态段TSS和门,另外,局部描述符表LDT也作为一种系统段。基地址(B0~B15)界限(L0~L15)系统段描述符(P299图9.23) 系统段描述符也称3680386微处理器资料课件37例请分析下面的描述符:1、

642000

00

A2

10

000000FF解:属性字节:A2h=10100010386LDT描述符,有效,DPL=1。

LDT基址:00100000h

界限:000FFh例请分析下面的描述符:0000A238分段管理总结分段管理总结39例(P297图9.21):访问代码段例(P297图9.21):访问代码段4080386微处理器资料课件41分页管理

在80386中,在设计分段管理的基础上又增加了分页管理。在多任务系统中,有了分页管理功能,就只需把每个活动任务当前所需要的少量页面放在存储器中。 当CR0中的PG=1时,系统就启动分页机制; 当PG=0时,则禁止使用分页机制,而且把分段机制产生的线性地址直接当作物理地址使用。 80386分页管理的对象是固定大小为4KB的存储块,称之为页。分页管理 在80386中,在设计分段管理的基础上又增加了分42段页式结构的寻址过程下×4×4CR3段页式结构的寻址过程下×4×4CR343页表结构、页目录描述符以及页描述符 80386采用了两级表结构:页目录表和页表。 当允许分页时,分页机制将实现两级地址转换:在较高一级,由页目录表中的一个页目录项映射页表;在低一级,由页表映射页。图9.24页目录项和页表项的格式(P299)页表结构、页目录描述符以及页描述符 80386采用了44P—存在位,表示该页/页表是否在内存W—写允许位,表示该页/页表是可写U—用户位,表示该页/页表用户是否可用A—访问位,表示该页/页表是否访问过D—出错位AVL—

程序员可使用的位

当页目录项和页表项的U、W位不一致时,选取最小的值。例假设页目录项的UW位=11(用户可写),页表项的UW位=10(用户可用,但只可读,不可写)则,最终UW位=min(11,10)=10

(用户可用,但只可读,不可写)P—存在位,表示该页/页表是否在内存45分页管理寻址过程举例假设线性地址=12345678H,CR3=10000000H,页目录描述符=20000005H,页描述符=30000007H

求:1)页目录描述符的地址2)页描述符的地址3)操作数(32位)的地址4)操作数用户是否可写?答:

1)页目录描述符的地址10000120H~10000123H2)页描述符的地址20000D14H~20000D17H3)操作数(32位)的地址30000678H~3000067BH操作数用户是否可写?页目录描述符:U=1,W=0,不可写页描述符:U=1,W=1,可写∴操作数用户不可写CR3×4×4分页管理寻址过程举例求:1)页目录描述符的地址答:1)页46分段分页综合例题

80386工作在保护方式下,GDTR=002000001FFFH,LDTR=3009H,CS=1007H,EIP=00000800H。1)GDT的起始地址为

,结束地址为

。GDT的表长为

。2)LDT描述符的地址范围是

。分段分页综合例题473)若代码段描述符为:

6

4

2

0则代码段的属性为:特权级

,是否可读

,是否在内存

,是否访问过

。代码段的长度为

。00

00

FB

50

00000FFF3)若代码段描述符为:0000F484)若80386仅分段,不分页,则当前执行指令的物理地址是

;若分段,又分页,则访问代码段时转换的线性地址为

;根据此线性地址进行分页转换,页目录描述符的偏移地址为

,页表描述符的偏移地址为

,被访问指令在页帧中的偏移地址为

。4)若80386仅分段,不分页,则当前执行指令的物理地址是49保护

386支持两个主要的保护类型:

一类是不同任务之间的保护。它是通过给每一任务分配不同的虚拟地址空间,而每一任务有各自不同的虚拟地址—物理地址的转换映射,因而可实现任务之间的完全隔离。

另一类是同一任务内的保护。定义4种特权级(特权级0、1、2、3),特权级0最高,特权级3最低。每个段都有对应的特权级,访问段时需遵循相应的特权保护规则。保护50系统中特权级的安排系统中特权级的安排51特权级种类:1、请求特权级——RPL RPL为选择子的最低2位2、描述符特权级——DPL DPL为描述符中属性字节的b6、b5位3、当前特权级——CPL CPL=当前正在执行的代码段的DPL4、输入输出特权级——IOPL特权级种类:52各种段的特权保护:1、数据段、附加数据段的特权保护

max{CPL,RPL}≤DPL

程序只能访问特权级相同或较低的数据段例:MOV AX,01001101B MOV DS,AX

RPL=01CPL为这段程序所在代码段的DPL(假设=10)

则该程序所能访问的数据段的

DPL≥max{CPL,RPL}

即DPL≥max{10,01}

=10即只能访问特权级为2,3的数据段。各种段的特权保护:532、堆栈段的特权保护

DPL=RPL=CPL

任务在不同特权级操作时必须有独立的堆栈,否则低特权级的任务会通过堆栈影响高特权级的任务。2、堆栈段的特权保护543、代码段的特权保护1)程序段在同特权级之间可以进行控制转移;2)低特权级的段到高特权级的段通过某些合法的入口点(如“调用门”)也可以进行控制转移;

CPL≤DPL(调用门)3)高特权级到低特权级之间的转移是禁止的。如,操作系统的程序不能调用、跳转到用户的程序。3、代码段的特权保护55

门描述符格式(P305图9.30)和系统段描述符有差别。它包含一个32位的偏移地址,一个字计数和一个选择子。

调用门描述符由选择子、偏移地址和字计数构成。

选择子和偏移地址指出一个子程序的起始地址,字计数指出有多少参数必须从主程序的堆栈传送到被调用的子程序的堆栈上。对其他门而言,字计数值字段无意义。 门描述符格式(P305图9.30)和系统段描述符有差别。56例请分析下面的描述符:1、

642000

00

CC

10

00258000解:属性字节:CCh=11001100386调用门描述符,有效,DPL=2。

目标代码段选择子:0025h目标代码段偏移地址:00008000h

双字计数:10h×4B=64B即要从调用程序的堆栈拷贝64B的参数到被调用程序的堆栈。例请分析下面的描述符:0000CC574、协调(一致)代码段

(属性字节中C=1) 任何低特权级的过程可直接调用或转移到协调代码段,不必使用调用门,也不必切换堆栈。但转移、调用后CPL不变,仍为调用前的低特权级。 因此,除协调代码段外,调用过程仍不能访问其他高特权级的代码段,只能把协调代码段协调到调用者的特权级。4、协调(一致)代码段(属性字节中C=1)58例请分析下面的描述符:1、

642001

00

BF

0B

00007FFF解:属性字节:BFh=10111111协调代码段,DPL=1,在内存,可读,被访问过。

代码段基址:010B0000h

界限:07FFFh注:特权级为1、2、3的代码段都可调用或跳转到该协调代码段,但转移到该协调代码段后,当前特权级CPL不变。如,原CPL=3,则调用后,CPL还是3,不会变成1。例请分析下面的描述符:0100BF59(三)虚拟8086方式(V86方式) 为了解决80286中不能在保护模式下运行8086/8088应用程序的问题,从80386开始,在保护模式中引入了虚拟8086工作模式(简称V86模式)。

V86模式下,多个8086实模式的应用软件可以同时运行。操作系统可以并行执行8086、80286和80386的程序。

V86模式是让80386模拟1MB空间的寻址环境,但它并不仅限于1MB的存储空间,因为它可以同时支持几个V86环境。

(三)虚拟8086方式(V86方式) 为了解决8028660V86模式的主要特点

1.V86模式的寻址 在V86模式下,80386对段寄存器的解释与处理方式和实模式一样。2.V86模式下的保护功能

V86模式具有80386的一些保护功能,但只是简单地把V86模式下的任务的特权级一律降到最低级3。

在V86模式下,只能执行SGDT、SIDT和SMSW这3条指令,如果要执行其他保护模式指令,均会产生异常。V86模式的主要特点

1.V86模式的寻址2.V86模式613.V86模式下的分页功能

为了使80386运行多个虚拟任务的地址空间大于1MB的物理地址空间,则需要存储器管理部件进行分页操作。若要启动分页机制,必须预先在保护模式下对CR0的PG位(位31)置1。

V86模式下的分页时线性地址的算法与实模式下完全相同。3.V86模式下的分页功能62六、80386/80486三种工作模式的相互转变

CPU复位后进入实地址模式;通过修改CR0的PE位,可以使CPU从实地址模式转变到保护模式,或者从保护模式转变到实地址模式;通过执行IRETD指令,或者进行任务转换,可从保护模式转变到V86模式。采用中断操作,可以从V86模式转变到保护模式。六、80386/80486三种工作模式的相互转变

CPU63ENDEND6480386微处理器

(参考郁慧娣书第9章9.2、9.3、9.4和第3版教材第8章8.2)80386微处理器

(参考郁慧娣书第9章9.2、9.3、65

8.280386微处理器80386是一种与16位的80286相兼容的第一个高性能全32位微处理器,它代表了体系结构的重要进步——从16位体系结构过渡到32位体系结构。80386采用高速CHMOSⅢ1.5μm技术,132条引出线用网格阵列式封装在陶瓷片内,其耗散功率在1.5w到3.0w之间。

8.280386微处理器8066一、80386的特点

1.80386芯片在硬件结构上由6个逻辑单元组成。它们按流水线方式工作,运行速度可达到4MIPS。

2.80386有三种方式:实方式、保护方式、V86方式

。3.硬件支持段式管理和页式管理,易于实现虚拟存储系统。

4.硬件支持多任务,一条指令可以完成任务切换。

5.特权保护机制

4级特权级:0级最优先,其次为1,2和3级。一、80386的特点1.80386芯片在硬件结构上67二、80386的内部结构二、80386的内部结构681.

总线接口部件(BIU:BusInterfaceUnit)。2.

指令预取部件(CPU:CodePrefetchUnit)。3.

指令译码部件(IDU:InstructionDecodeUnit)。4.

执行部件(EU:ExecutionUnit)。它可进一步分为控制部件(ControlUnit),保护测试部件(ProtectionTestUnit)和数据处理部件(DataUnit)3部分。5.

段管理部件(SU:SegmentUnit)。6.页管理部件(PU:PagingUnit)。1.总线接口部件(BIU:BusInterfaceU69三、80386的寄存器结构

80386有7类寄存器: 通用寄存器、段寄存器、指令指针和标志寄存器、控制寄存器、系统地址寄存器、调试寄存器以及测试寄存器。 三、80386的寄存器结构 80386有7类寄存器:70(一)通用寄存器

80386有8个32位的通用寄存器,分别命名为EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。(一)通用寄存器80386有8个32位71(二)段寄存器和段描述符高速缓存器

80386增加了FS和GS两个新的数据段寄存器。

段寄存器里存放的不再是段基址的高16位,而是选择器(P288图9.7)。b15b14…………b4b3b2b1b0索引(13位)TI(0:GDT;1:LDT)RPL(二)段寄存器和段描述符高速缓存器 80386增加了FS72 80386中有一个32位的指令指针(EIP)和一个32位的标志寄存器(EFLAGS)。 80386工作在实模式时采用16位的指令指针IP。

EFLAGS的低12位与8086标志寄存器FLAGS完全相同。高20位中设置了4个新的标志。(三)指令指针和标志寄存器图9.8保护方式标志寄存器(P288) 80386中有一个32位的指令指针(EIP)和一个3273(四)系统地址寄存器和系统段寄存器

GDTR——

全局描述符表寄存器

IDTR——

中断描述符表寄存器

LDTR——

局部描述符表寄存器

TR——任务寄存器(四)系统地址寄存器和系统段寄存器 GDTR——全局描74全局描述符表寄存器(GDTR)(图9.2)全局描述符表寄存器(GDTR)(图9.2)75例1.

如果GDTR的内容为200000001FFFh,请给出GDT的起始地址、结束地址、表的长度。表中放了多少个描述符?最后一个描述符的地址范围?解:GDT的起始地址

=20000000h

GDT的结束地址

=20000000h+1FFFh=20001FFFh

GDT表长

=1FFFh+1=2000h

表中描述符个数

=2000h÷8=400h=1024 最后一个描述符的地址范围:20001FFFh-7=20001FF8h~20001FFFh

例1.如果GDTR的内容为200000001FFFh,请给76中断描述符表寄存器(IDTR)(图9.3)中断描述符表寄存器(IDTR)(图9.3)77局部描述符表寄存器(LDTR)(图9.4)局部描述符表寄存器(LDTR)(图9.4)78例2.假设GDT的基地址为01002000h,LDTR=2108h,问LDT描述符的地址范围?解:LDTR=0010000100001000

TI=0,LDT描述符在GDT中

索引

=0010000100001

LDT描述符的起始地址:GDT的基地址+索引×8=01002000h+0010000100001×8

=01004108h

LDT描述符的地址范围(占8字节): 01004108h~0100410Fh例2.假设GDT的基地址为01002000h,LDTR=79任务寄存器(TR)(图9.6)任务寄存器(TR)(图9.6)80例3.假设GDT的基地址为00011000h,TR=3208h,问TSS描述符的地址范围?解:TR=0011001000001000

TI=0,TSS描述符在GDT中

索引

=0011001000001

TSS描述符的起始地址:GDT的基地址+索引×8=00011000h+0011001000001×8

=00014208h

TSS描述符的地址范围(占8字节): 00014208h~0001420Fh例3.假设GDT的基地址为00011000h,TR=3281(五)控制寄存器

80386中有3个32位的控制寄存器CR0、CR2和CR3,用于保存机器的各种全局性状态,这些状态影响系统所有任务的运行。

CR1未定义,留作备用。1.CR0——控制寄存器0 定义了6个控制和状态标志。(五)控制寄存器 80386中有3个32位的控制寄存器82PE(位0)和PG(位31)——保护控制位。TS——任务切换位每当任务切换时,处理器将把TS置为1。MP——监控协处理器位MP为1时,表示有协处理器在工作。EM——模拟协处理器控制位EM为1时,表示用软件仿真协处理器。ET——协处理器扩展类型

0:80287协处理器;1:80387协处理器;PE(位0)和PG(位31)——保护控制位。832.CR2——控制寄存器2CR2称为页面故障线性地址寄存器,用于发生页面访问异常时报告出错信息。3.CR3——控制寄存器3CR3称为页组目录基址寄存器,用于存放页目录表的物理基地址。如下图所示。(分页时用到)2.CR2——控制寄存器284四、80386的三种工作模式

80386有3种工作模式:

实地址模式(RealAddressMode),简称为实模式;

保护虚拟地址模式(ProtectedVirtualAddressMode),也叫保护模式;

虚拟8086模式(VirtualAddress8086Mode),简称为V86模式。四、80386的三种工作模式 80386有3种工作模式85实地址模式

当80386在刚加电启动或复位时,便由操作系统自动控制进入实模式。

实模式主要是为80386进行初始化用的,为80386保护模式所需要的数据结构做好各种配置和准备。 在实模式下,80386类似于8086的体系结构,与8086兼容。实地址模式 当80386在刚加电启动或复位时,便由操作系统86保护虚拟地址模式

保护模式是80386最常用的、也是最具特色的工作模式。通常在开机或复位后,机器先进入实模式完成初始化,然后就立即切换到保护模式。 保护模式提供了多任务环境中的各种复杂功能以及对复杂存储器组织的管理机制:

1)多用户、多任务;

2)虚拟存储管理;

物理存储空间:4GB;虚拟存储空间:64TB

保护虚拟地址模式 保护模式是80386最87

所谓虚拟存储空间是指程序所占有的存储空间。80386系统中,由于内存容量的限制,并不可能将所有的段都放在内存中的,而必须将大部分段放在海量的外部磁盘上,待执行到相关程序段时再调入内存,将暂时不执行的程序段调出内存。 程序员编写程序时,其程序存入磁盘。这样,从程序员的角度来看,系统中似乎有一个容量很大、速度也相当快的虚拟存储器;当然,它并不是真正的物理上的内存。 3)保护机制; 特权保护机制、不同任务之间的隔离(不同的虚拟存储空间) 所谓虚拟存储空间是指程序所占有的存储空间。8038688虚拟8086模式(1)使80386可以快速地执行多个8086的应用程序。(2)段寄存器的用法和实模式时相同。(3)存储器寻址空间为1MB,可以使用分页机制,支持多任务。在多任务系统中,80386可以使其中的一个或几个任务使用虚拟8086模式。此时,可以使一个任务所用的全部页面定位于某个物理地址空间,而另一个任务所用的页面定位于其他物理地址空间,这样,就把存储器虚拟化了,虚拟8086模式的名称即由此而来。(4)在虚拟8086模式中,程序是在最低特权级(3级)上运行的,因此,80386指令系统中的一些特权指令是不能使用的。虚拟8086模式(1)使80386可以快速地执行多个808689五、80386的存储器管理

80386利用片内的存储管理单元(MemoryManagementUnit,简称MMU

)来实现对存储器系统的两级管理:分段管理(逻辑地址→线性地址)和分页管理(线性地址→物理地址)

。 在两级存储管理中,段的大小可以选择(可以字节或页为单位),根据数据结构和代码模块的大小而确定。 另外,对每个段还可以赋予属性和保护信息,以有效防止在多任务环境下各个模块对存储器的越权访问。五、80386的存储器管理 80386利用片内的存储管90(一)实模式

80386的所有指令在实模式下都有效。其物理地址的形成与8086相同,可寻址的实地址空间只有1MB,所有的段最大容量为64KB。

中断向量表仍设置在00000H~003FFH共计1K字节的存储区内。 系统初始化区在FFFFFFF0H~FFFFFFFFH存储区内。 (一)实模式 80386的所有指令在实模式下都有效。其物91(二)保护模式

保护模式下采用段页式管理机构。(二)保护模式 保护模式下采用段页式管理机构。92

保护模式下采用段页式管理机构。 注意区分逻辑地址、线性地址和物理地址这3者之间的关系。(二)保护模式 保护模式下采用段页式管理机构。(二)保护模式93逻辑地址:16位段选择子+32位有效地址 有效地址=基址+变址×比例因子+位移量

线性地址

由存储器段式管理机构按下式来计算:

线性地址

=

段基地址+有效地址物理地址 页式管理机构不工作时,物理地址=线性地址;页式管理机构工作时,物理地址=F(线性地址)逻辑地址:16位段选择子+32位有效地址94分段管理

为了实现分段管理,80386把有关段的信息存放在一个称为段描述符(简称描述符)的8个字节长的数据结构中,并把系统中所有的描述符编成一张表,以便硬件查找和识别。 80386共设置了3种描述符表,即全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。

分段管理 为了实现分段管理,80386把有关段的信息存放在95

段描述符包括:

段基地址(BaseAddress),规定了线性地址空间中段的起始地址。也可以把基地址看成是段内偏移量为0的线性地址。

段的界限(Limit),表示在虚拟地址中,段内可使用的最大偏移量。

段的属性(Attributes),包括该段是否可读出、写入以及段的特权级等。 有两种类型的段:非系统段、系统段;两种段描述符:非系统段描述符、

系统段描述符。 段描述符包括:96非系统段描述符(P296图9.20)

非系统段指一般的代码段、数据段和堆栈段。(s=1)基地址(B0~B15)界限(L0~L15)属性字节(访问权字节)(8位):B5基地址(32位):B7B4B3B2界限(20位):B6(低4位)B1B0非系统段描述符(P296图9.20) 非系统段指一般9780386微处理器资料课件98例请分析下面的描述符:

6420

80

00

B2

0A

000003FF解:属性字节:B2h=10110010

可写的数据段,DPL=1,在内存,未访问过。

数据段基址:800A0000h

界限:003FFh例请分析下面的描述符:8000B99

系统段描述符(P299图9.23)

系统段描述符也称为特殊段描述符(S位为0)。 系统段包括任务状态段TSS和门,另外,局部描述符表LDT也作为一种系统段。基地址(B0~B15)界限(L0~L15)系统段描述符(P299图9.23) 系统段描述符也称10080386微处理器资料课件101例请分析下面的描述符:1、

642000

00

A2

10

000000FF解:属性字节:A2h=10100010386LDT描述符,有效,DPL=1。

LDT基址:00100000h

界限:000FFh例请分析下面的描述符:0000A2102分段管理总结分段管理总结103例(P297图9.21):访问代码段例(P297图9.21):访问代码段10480386微处理器资料课件105分页管理

在80386中,在设计分段管理的基础上又增加了分页管理。在多任务系统中,有了分页管理功能,就只需把每个活动任务当前所需要的少量页面放在存储器中。 当CR0中的PG=1时,系统就启动分页机制; 当PG=0时,则禁止使用分页机制,而且把分段机制产生的线性地址直接当作物理地址使用。 80386分页管理的对象是固定大小为4KB的存储块,称之为页。分页管理 在80386中,在设计分段管理的基础上又增加了分106段页式结构的寻址过程下×4×4CR3段页式结构的寻址过程下×4×4CR3107页表结构、页目录描述符以及页描述符 80386采用了两级表结构:页目录表和页表。 当允许分页时,分页机制将实现两级地址转换:在较高一级,由页目录表中的一个页目录项映射页表;在低一级,由页表映射页。图9.24页目录项和页表项的格式(P299)页表结构、页目录描述符以及页描述符 80386采用了108P—存在位,表示该页/页表是否在内存W—写允许位,表示该页/页表是可写U—用户位,表示该页/页表用户是否可用A—访问位,表示该页/页表是否访问过D—出错位AVL—

程序员可使用的位

当页目录项和页表项的U、W位不一致时,选取最小的值。例假设页目录项的UW位=11(用户可写),页表项的UW位=10(用户可用,但只可读,不可写)则,最终UW位=min(11,10)=10

(用户可用,但只可读,不可写)P—存在位,表示该页/页表是否在内存109分页管理寻址过程举例假设线性地址=12345678H,CR3=10000000H,页目录描述符=20000005H,页描述符=30000007H

求:1)页目录描述符的地址2)页描述符的地址3)操作数(32位)的地址4)操作数用户是否可写?答:

1)页目录描述符的地址10000120H~10000123H2)页描述符的地址20000D14H~20000D17H3)操作数(32位)的地址30000678H~3000067BH操作数用户是否可写?页目录描述符:U=1,W=0,不可写页描述符:U=1,W=1,可写∴操作数用户不可写CR3×4×4分页管理寻址过程举例求:1)页目录描述符的地址答:1)页110分段分页综合例题

80386工作在保护方式下,GDTR=002000001FFFH,LDTR=3009H,CS=1007H,EIP=00000800H。1)GDT的起始地址为

,结束地址为

。GDT的表长为

。2)LDT描述符的地址范围是

。分段分页综合例题1113)若代码段描述符为:

6

4

2

0则代码段的属性为:特权级

,是否可读

,是否在内存

,是否访问过

。代码段的长度为

。00

00

FB

50

00000FFF3)若代码段描述符为:0000F1124)若80386仅分段,不分页,则当前执行指令的物理地址是

;若分段,又分页,则访问代码段时转换的线性地址为

;根据此线性地址进行分页转换,页目录描述符的偏移地址为

,页表描述符的偏移地址为

,被访问指令在页帧中的偏移地址为

。4)若80386仅分段,不分页,则当前执行指令的物理地址是113保护

386支持两个主要的保护类型:

一类是不同任务之间的保护。它是通过给每一任务分配不同的虚拟地址空间,而每一任务有各自不同的虚拟地址—物理地址的转换映射,因而可实现任务之间的完全隔离。

另一类是同一任务内的保护。定义4种特权级(特权级0、1、2、3),特权级0最高,特权级3最低。每个段都有对应的特权级,访问段时需遵循相应的特权保护规则。保护114系统中特权级的安排系统中特权级的安排115特权级种类:1、请求特权级——RPL RPL为选择子的最低2位2、描述符特权级——DPL DPL为描述符中属性字节的b6、b5位3、当前特权级——CPL CPL=当前正在执行的代码段的DPL4、输入输出特权级——IOPL特权级种类:116各种段的特权保护:1、数据段、附加数据段的特权保护

max{CPL,RPL}≤DPL

程序只能访问特权级相同或较低的数据段例:MOV AX,01001101B MOV DS,AX

RPL=01CPL为这段程序所在代码段的DPL(假设=10)

则该程序所能访问的数据段的

DPL≥max{CPL,RPL}

即DPL≥max{10,01}

=10即只能访问特权级为2,3的数据段。各种

温馨提示

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

评论

0/150

提交评论