- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2.4保护模式软件体系结构4.6Win32汇编语言程序设计
描述符与描述符表保护模式的寄存器模型保护模式下存储器寻址虚拟8086模式01保护模式软件体系结构02
1.特权级(PL,PrivilegeLevel):2.4.1描述符与描述符表任务:程序在执行时的一种情况,是一个动态的概念Pentium为每个任务提供了4种特权级,0级最高,3级最低应用程序常规扩展系统服务内核级别0级别1级别2级别3
描述符(Descriptor):描述存储器段的属性的一个8字节的数据结构。包括段描述符、系统段描述符和门描述符三种类型。
段描述符:用于描述代码、数据和堆栈段(用户段界限0~15位段基址0~23位访问权限字节段界限16~19位段基址24~31位DG0AVL
段描述符:G位(粒度位):G=0,段的长度以字节为单位段长最大1M字节G=1,段的长度以页(4K字节)为长度单位段长最大1M?4K=4G字节D位:D=0,16位指令方式D=1,32位指令方式AVL位:AVL=0,程序不可使用本段AVL=1,程序可以使用本段
段描述符:访问权限字PDPLSEEDCRWP位:P=0,段不在内存中P=1,段在内存中DPL:取值0~3,确定段的特权级S位:S=1,段描述符A位:A=0,段尚未被访问A=1,段已被访问
段描述符:访问权限字PDPLSEEDCWR1~3位表示段的类型E=0,为数据段ED=0,段向上扩展 为数据段ED=1,段向下扩展 为堆栈段W=0,数据段只读W=1,数据段可写E=1,为代码段C=0,忽略描述符特权级C=1,遵循描述符特权级R=0,代码段不可读 即只执行R=1,代码段可读
系统段描述符:格式与段描述符基本相同,主要差别①访问权限字DPLSTYPES=0,系统段描述符TYPE为4个字节,共有16种类型。其中:2,LDT9,TSS,非忙B,TSS,忙5,任务门C,调用门E,中断门F,陷阱门②D位无定义(D=0)
门描述符:为目标代码的入口点选择符:用于确定段基地址字计数:从调用者堆栈中复制到被调用者堆栈中的参数个数,参数为32位偏移量:相对于段基地址的偏移量,01门提供了将程序控制转给服务程序入口的手段。有任务门、调用门、中断门、陷阱门4种类型属于系统段描述符02
门描述符:DPL为任务允许访问该门的最低特权级访问权限字节格式与系统段描述符相同
例:判断描述符所描述的段的性=1,S=0,DPL=2TYPE=2,为DLT因此为一个特权级为2的DLT,已经在内存中该DLT的基址,界限为00300HG=0,段的长度为字节长度AVL=0该段不可被程序访问
描述符表描述符表由描述符顺序排列组成,占内存一定的区域,由系统地址寄存器(GDTR、IDTR、LDTR)指示其在物理存储器中的位置和大小描述符表有三种:全局描述符表GDT中断描述符表IDT局部描述符表LDT
2.4.2保护模式的寄存器模型
015015163178ALBLCLDLAXBXCXDXAHBHCHDHEAXEBXECXEDXIPCSDSSSESFSGSSPBPSIDIESPEBPESIEDIFLAGS实模式的寄存器模型
1.全局描述符表寄存器GDTR在物理存储器地址空间中定义全局描述符表GDT0151647GDTRBASELIMITBASE指示GDT在物理存储器中开始的位置LIMIT规定GDT的界限LIMIT有16位,从而GDT最大65536个字节,能够容纳65536/8=8192个描述符
解:GDT的起始地址结束地址+0FFFH=00100FFFH表的大小为0FFFH+1=4096字节表中可以存放4096/8=512个描述符全局描述符表寄存器GDTR例:(GDTR)=001000000FFFH,求GDT在物理存储器中的起始地址,结束地址,表的大小,表中可以存放多少个描述符?
2.中断描述符表寄存器IDTR在物理存储器地址空间中定义中断描述符表IDT0151647IDTRBASELIMIT由于Pentium只能支持256个中断和异常,因此LIMIT最大为0FFFHIDT中的描述符类型为中断门
LDT定义任务用到的局部存储器地址空间0116位的LDTR并不直接定义LDT,它只是一个指向GDT中LDT描述符的选择符。01如果LDTR中装入了选择符,相应的描述符将从GDT中读出并装入局部描述符表高速缓冲寄存器。将该描述符装入高速缓冲寄存器就为当前任务创建了一个LDT013
文档评论(0)