保护模式汇编语言程序设计 →局部描述符表LDT) 通常每个任务一个 该描述符表包含该任务使用的数据段、代码段、堆 栈段的描述符。 LDTR 选择符
保护模式汇编语言程序设计 局部描述符表(LDT) 该描述符表包含该任务使用的数据段、代码段、堆 栈段的描述符。 通常每个任务一个 选择符 15 0 LDTR
保护模式汇编语言程序设计 →局部描述符表LDT) LDTR|选择符 LTD描述符 GDT 32位 16位 基址 界限 LDT描述符高速缓冲 ●寄存器(不可见) LDT
保护模式汇编语言程序设计 GDT LDTR LTD描述符 LDT 基址 界限 32位 16位 LDT描述符高速缓冲 寄存器(不可见) 选择符 局部描述符表(LDT)
保护模式汇编语言程序设计 →局部描述符表LDT) SLDT指令存储局部描述符表寄存器 复制LDTR到由OP指定的16位操作数中 SGDT OP LLDT指令装入局部描述符表寄存器 将OP指定的16位内存操作数或16位寄存器操作数装入LDTR中 LIDT OP
保护模式汇编语言程序设计 SLDT指令——存储局部描述符表寄存器 SGDT OP 复制LDTR到由OP指定的16位操作数中 LLDT指令——装入局部描述符表寄存器 LIDT OP 将OP指定的16位内存操作数或16位寄存器操作数装入LDTR中 局部描述符表(LDT)
保护模式汇编语言程序设计 段选择符寄存器 CS、DS、SS、ES、FS、GS的取值为段选择符,选 择一个定义存储器段大小和属性的段描述符 15 320 CSDS./S索引TRP段选择符 RPL:申请特权级0~3 TI:表指示符 0使用全局描述符表 1使用局部描述符表 索引:选择描述符表入口
保护模式汇编语言程序设计 段选择符寄存器 CS、DS、SS、ES、FS、GS的取值为段选择符,选 择一个定义存储器段大小和属性的段描述符 段选择符 15 3 2 0 CS/DS/.../GS 索引 TIRPL RPL: 申请特权级 0~3 TI: 表指示符 0——使用全局描述符表 1——使用局部描述符表 索引:选择描述符表入口
保护模式汇编语言程序设计 段描述符 G位粒度位:G=0字节,G=1页 段基址24-31位 D位:D=016位,D=132位 AVL:可用位 GD0AV段界限619位6 P DPL S E/EDR P位:P=0,段不在内存中 P=1,段在内存中 DPL:0~3,特权级 段基址0-23位 争S位:S=1,段描述符 A位:A=0,段尚未被访问 A=1,段已被访问 段界限0-15位
保护模式汇编语言程序设计 段描述符 G位(粒度位):G=0 字节,G=1 页 D位:D=0 16位, D=1 32位 AVL:可用位 0 1 2 3 4 5 6 7 段界限0~15位 段基址0~23位 访问权限字节 段界限16~19位 段基址24~31位 G D 0 AVL P DPL S E A ED C R W P位:P=0,段不在内存中 P=1,段在内存中 DPL:0~3,特权级 S位:S=1,段描述符 A位:A=0,段尚未被访问 A=1,段已被访问