如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
§2-3INTRODUCTIONTOPROTECTEDMODEMEMORYADDRESSING+§17-3&§17-4180386及其以上的工作模式由CR0的保护允许位PE决定zPE=0:实地址模式上电或复位后的工作模式程序在最高特权级(PL=0)上运行,故可执行I/O指令及其它特权指令寄存器组是8086的超集,即允许使用32位的寄存器(通用寄存器和指令指针及标志前加超越前缀E)寻址机制、段的使用、中断处理等均同8086280386及其以上的工作模式(续)zPE=1:保护虚地址模式再由CR0的允许分页位PG决定是否增加页式存储器管理PG=0:仅使用段式存储器管理,不使用页式存储器管理PG=1:使用段页式存储器管理3ProtectedModeMemoryAddressingDSEBX000800000088MemorySystemSelectorOffsetFFFFFFFFDescriptorTableDataSegment+0000FF880000FF00……0000FF00…00000000•SegmentsareinterpreteddifferentlyinProtectedModevs.RealMode:4Segmentregistercontainsaselectorthatselectsadescriptorfromthedescriptortable.Theoffsetcanbe32-bits.DSEBX000800000088MemorySystemSelectorOffsetFFFFFFFFDescriptorTableDataSegment+0000FF880000FF00……0000FF00…00000000Thedescriptorcontainsinformationaboutthesegment,e.g.,it'sbaseaddress,lengthandaccessrights.5地址转换全过程分段单元分页单元逻辑地址16位32位32位10位10位12位32位线性地址物理地址段选偏移量目录索引页索引偏移量择符⊕4页表K⊕索引*4字段基地址节段描述符表页目录表⊕页基地址索引*4索引*8⊕⊕页表基地址段表基地址页目录表基地址物理存储器6从逻辑地址在保护虚地址模式下,用户可编程的6个16位的段寄存器(代码段到线性地址CS,堆栈段SS,数据段DS、ES、FS、GS)存放段选择符如下:153210索引TIRPL0-GDT1-LDT请求分段单元特权级位16位32位32线性地址段选择符偏移量逻辑地址⊕在禁止分=<段选择符,偏移量>对段描述符中的页的情况段选择符用来寻全局描述符表段描述符表段基地址下,就是物理地址址段描述符GDT或局部描述符表LDT索引*8⊕46字节()逻辑地址空间:264T段表基地址2个描述符表213个表项/表322字节/表项(段)7pp.59-63SelectorsandDescriptors8段选择符寻找到的段描述符的格式3116150段基地址(Base)15-0段长限(Limit)15-0段长限段基地址31-24GDPDPLSTYPEA段基地址23-1619-1616位32位32位分段单元线性地址段选择符偏移量逻辑地址⊕=<段选择符,偏移量>对段基地址全局描述符表段描述符表段描述符表在内存中。GDT或局部描述为了加快逻辑地址到线符表LDT性地址的转换过程,在索引*8为段寄存器装入段选择⊕符时,自动将索引到的段描述符经调整后装入段表基地址80386内部的与这个段寄存器相关联的描述符高速缓存(descriptorcache)返回“段选择符”9SegmentDescriptorsinProtectedMode63565552514847403916150Base(L19AccessBaseLimit(B31-B24)-L16)Rights(B23-B0)(L15-L0)765byte43210GDXUPDPLSTYPEAzBaseaddressStartinglocationofthememorysegment.zLimitLengthofthesegmentminus1.20-bitsallowssegmentsupto1MB.Thisvalueisshiftedby12bitstotheleftwhentheG(Granu