网站大量收购闲置独家精品文档,联系QQ:2885784924

段描述符(GDT).doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
段描述符(GDT)

段描述符(GDT) 在8086中,段寄存器用来存放诸如代码段、数据段的段首址,再根据指令中的寻址方式计算出来的偏移量即可找到该指令或者数据在内存中的实际位置。但在80386以后的系统中,因其寻址范围的扩大(段的基址需要32位长度,而不是8086的16位),段寄存器不再用来存储段基址,取而代之的是存储段选择符,而其基址由段描述符提供。在段选择符中保存了段描述符在段描述符表中的偏移地址(段描述符统一存放在内存中的段描述符表中,以方便管理)。 本文旨对段描述符作简要介绍。 段描述符由两个双字即64位组成,用来提供段的基址、段长、段类型以及当前特权级等的信息。下图为段描述符的结构图。 现将段描述符中各位的含义列表如下,以便读者能对段描述符有更清晰的理解。 标志 位置 说明 段基址 第一个双字的第24-31位、0-7位和第二个双字的16-31位 意义同8086中的段基址,只不过它比8086的长度要长,为32位,在表中分三部分存放 段限 第一个双字的第16-19位和第二个双字的第0-15位 段的长度,即该段的最大偏移地址,在表中分两部分存放 G 第一个双字的第23位 粒度标志,0表示单位为0,1表示单位为4KB,与段限配合使用 S 第一个双字的第12位 描述符类型,0表示为系统段,1表示代码或数据段 D/B 第一个双字的第22位 缺少振作规模,0表示16位段,1表示32们段 DPL 第一个双字的第13-14位 描述符特权级,0为最高 AVL 第一个双字的第20位 只能由系统软件使用 下面的程序用于读取系统局部描述符表的内容,并试图对其中的部分内容进行解析。 ;全局描述符表源程序 .MODEL TINY .386 .STACK 100 .DATA GDT DB 1000H DUP(0) ;存放读取的全局描述符表 bPAE DB 0 ;操作系统是Winxp SP2或更新 COUNT DW 0 COUNT1 DW 0 buffer DB 80 DUP(0) sCode DB 4,Code sData DB 4,Data sTSS32 DB 6,TSS32 s32 DB 2,32 s16 DB 2,16 sDPL DB 4,DPL: .CODE START:MOV AH,00H MOV AL,03H INT 10H ;清屏 LEA EDI,GDT MOV AH,0FEH MOV AL,00H INT 21H ;读GDT SGDT [EDI] LEA EBX,GDT MOV CX,[EBX] INC CX ;CX: 全局描述符表长度 MOV COUNT,CX MOV EBX,[EBX+2] ;EBX: 全局描述符表在系统中的地址(逻辑地址) LEA EDI,GDT ;EDI: 存放读取的全局描述符表首地址 MOV AH,0FEH MOV AL,01H INT 21H ;读取数据 MOV CX,COUNT SHR CX,3 LEA ESI,GDT START1:MOV EAX,[ESI] OR EAX,[ESI+4] JNZ START3 ADD ESI,8 START2:push ax mov ah,02h int 21h pop ax INC COUNT1 LOOP START1 START17:CALL IfExit JZ START17 JMP EXIT START3:LEA EDI,BUFFER MOV AX,COUNT1 CALL DisplayWord MOV AL,: STOSB MOV AL, STOSB PUSH ECX MOV ECX,8 START4:LODSB CALL DisplayByte MOV AL, STOSB LOOP START4 MOV AL,: STOSB MOV AL, STOSB PUSH ESI MOV DL,[ESI-3] MOV DH,[ESI-2] TEST DL,10H JZ START7 LEA SI,sCode ;代码段 TEST DL,08

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档