24保护模式软件体系结构 46Win32汇编语言程序设计
2.4 保护模式软件体系结构 4.6 Win32汇编语言程序设计
24保护模式软件体系结构 24.1描述符与描述符表 24.2保护模式的寄存器模型 24.3保护模式下存储器寻址 24.4虚拟8086模式
2.4.1 描述符与描述符表 2.4.2 保护模式的寄存器模型 2.4.3 保护模式下存储器寻址 2.4.4 虚拟8086模式 2.4 保护模式软件体系结构
24.1描述符与描述符表 1.特权级PL, Privilege level)): ●任务:程序在执行时的一种情况,是一个动态的概念 Pentium为每个任务提供了4种特权级,0级最高,3级最低 应用程序 常规扩展 系统服务 内核 级别0 级别r 级别2 级别3
1. 特权级(PL, Privilege Level): 2.4.1 描述符与描述符表 任务:程序在执行时的一种情况,是一个动态的概念 Pentium为每个任务提供了4种特权级,0级最高,3级最低 应用程序 常规扩展 系统服务 内核 级别0 级别1 级别2 级别3
2.描述符 scriptor): 描述存储器段的属性的一个8字节的数据结 构 包括段描述符、系统段描述符和门描述符三 种类型
2. 描述符(Descriptor): 描述存储器段的属性的一个8字节的数据结 构。 包括段描述符、系统段描述符和门描述符三 种类型
G段描述符: 用于描述代码、数据 段基址24~31位 7 和堆栈段(用户段)GD0N段界限163位6 访问权限字节 段基址0~23位 5432 段界限0~15位 0
段描述符: 用于描述代码、数据 和堆栈段(用户段) 0 1 2 3 4 5 6 7 段界限0~15位 段基址0~23位 访问权限字节 段界限16~19位 段基址24~31位 G D 0 AVL
G段描述符: G位(粒度位): 段基址24-31位 G=0,段的长度以字节为单位 GD0AV段界限1619位6 段长最大1M字节 G=1,段的长度以页(4K字节为长度访间权限字节5 单位 段长最大1M×4K=4G字节 段基址0-23位 ●D位:D=0,16位指令方式 D=1,32位指令方式 AVL位:AVL=0,程序不可使用本段 段界限0-15位 AVL=1,程序可以使用本段
段描述符: G位(粒度位): G=0, 段的长度以字节为单位 段长最大1M字节 G=1,段的长度以页(4K字节)为长度 单位 段长最大1M4K=4G字节 D位:D=0,16位指令方式 D=1,32位指令方式 AVL位:AVL=0,程序不可使用本段 AVL=1,程序可以使用本段 0 1 2 3 4 5 6 7 段界限0~15位 段基址0~23位 访问权限字节 段界限16~19位 段基址24~31位 G D 0 AVL
G段描述符: 76543210 访问权限字节 EDIR P DPLSE A P位:P=0,段不在内存中A位:A=0,段尚未被访问 P=1,段在内存中 A=1,段已被访问 DPL:取值0-3,确定段的 特权级 S位:S=1,段描述符
段描述符: 访问权限字节 7 6 5 4 3 2 1 0 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,段已被访问
G段描述符: 765432 访问权限字节 EDW P DPLSE A 3位表示段的类型 CR E=0,为数据段 E=1,为代码段 ED=0,段向上扩展 C=0,忽略描述符特权级 为数据段 C=1,遵循描述符特权级 ED=1,段向下扩展 R=0,代码段不可读 为堆栈段 即只执行 W=0,数据段只读 R=1,代码段可读 w=1,数据段可写
段描述符: 访问权限字节 7 6 5 4 3 2 1 0 P DPL S E A ED C W R 1~3位表示段的类型 E=0,为数据段 ED=0,段向上扩展 为数据段 ED=1,段向下扩展 为堆栈段 W=0,数据段只读 W=1,数据段可写 E=1,为代码段 C=0,忽略描述符特权级 C=1,遵循描述符特权级 R=0,代码段不可读 即只执行 R=1,代码段可读
G系统段描述符: 格式与段描述符基本相同,主要差别①访问权限字节 76543 P DPLS TYPE S=0,系统段描述符 TYPE为4个字节,共有16种类型。其中: 2, LDT 5,任务门 9,TSS,非忙 C,调用门 B,TSS,忙 E,中断门 陷阱门 ②D位无定义(D=0)
系统段描述符: 格式与段描述符基本相同,主要差别①访问权限字节 7 6 5 4 3 2 1 0 P DPL S TYPE S=0,系统段描述符 TYPE为4个字节,共有16种类型。其中: 2,LDT 9,TSS,非忙 B,TSS,忙 5,任务门 C,调用门 E,中断门 F,陷阱门 ② D位无定义(D=0)
G门描述符: 属于系统段描述符 门提供了将程序控制转给服务程 偏移量1631位 序入口的手段。有任务门、调用 门、中断门、陷阱门4种类型 访问权限字节 ●偏移量:相对于段基地址的偏移量,0字计数 为目标代码的入口点 选择符:用于确定段基地址 选择符0-1位 5432 字计数:从调用者堆栈中复制到被 调用者堆栈中的参数个数, 参数为32位 偏移量0-15位
门描述符: 偏移量:相对于段基地址的偏移量, 为目标代码的入口点 选择符:用于确定段基地址 字计数:从调用者堆栈中复制到被 调用者堆栈中的参数个数, 参数为32位 0 1 2 3 4 5 6 7 偏移量0~15位 选择符0~15位 访问权限字节 偏移量16~31位 0 0 0 字计数 属于系统段描述符 门提供了将程序控制转给服务程 序入口的手段。有任务门、调用 门、中断门、陷阱门4种类型