1保护模式汇编语言程序设计 2浮点运算指令及汇编语言程序设计 3MMX技术简介
1 保护模式汇编语言程序设计 2 浮点运算指令及汇编语言程序设计 3 MMX技术简介
保护模式汇编语言程序设计 1保护模式汇编语言程序设计
保护模式汇编语言程序设计 1 保护模式汇编语言程序设计
保护模式汇编语言程序设计 全局描述符表GDT 整个系统只有一个 表中包含可能被所有任务所共享的段的描述符—包 括操作系统用的数据段、代码段、堆栈段,各种任务 的任务状态段(TSS),所有的LDT段,中断服务程序 段等。 47 1615 GDTR BASE LIMIT 存放GDT的基址和界限
保护模式汇编语言程序设计 全局描述符表(GDT) 表中包含可能被所有任务所共享的段的描述符——包 括操作系统用的数据段、代码段、堆栈段,各种任务 的任务状态段(TSS),所有的LDT段,中断服务程序 段等。 47 16 15 0 GDTR BASE LIMIT 存放GDT的基址和界限 整个系统只有一个
保护模式汇编语言程序设计 全局描述符表GDT SGDT指令存储全局描述符表寄存器 GDTREG DB 6 DUP(?) SGDT GDTREG 将GDTR的内容复制到由 GDTREG指定的内存中的6个字节中 GDT指令—装入全局描述符表寄存器 GDTREG DW 001FH 0000H0000H LGDT GDTREG 将由 GDTREG指定的内存中的6字节操作数装入GDTR中
保护模式汇编语言程序设计 全局描述符表(GDT) SGDT指令——存储全局描述符表寄存器 GDTREG DB 6 DUP(?) …... SGDT GDTREG 将GDTR的内容复制到由GDTREG指定的内存中的6个字节中 LGDT指令——装入全局描述符表寄存器 GDTREG DW 001FH,0000H,0000H …... LGDT GDTREG 将由GDTREG指定的内存中的6字节操作数装入GDTR中
保护模式汇编语言程序设计 中断描述符表(IDT) SIDT指令存储中断描述符表寄存器 IDTREG DB 6 DUP(?) SGDT IDTREG 将IDTR的内容复制到由 IDTREG指定的内存中的6个字节中 LIDT指令装入中断描述符表寄存器 IDTREG DW 00FFH 0000H0000H LIDT DTREG 将由 IDTREG指定的内存中的6字节操作数装入IDTR中
保护模式汇编语言程序设计 中断描述符表(IDT) SIDT指令——存储中断描述符表寄存器 IDTREG DB 6 DUP(?) …... SGDT IDTREG 将IDTR的内容复制到由IDTREG指定的内存中的6个字节中 LIDT指令——装入中断描述符表寄存器 IDTREG DW 00FFH,0000H,0000H …... LIDT IDTREG 将由IDTREG指定的内存中的6字节操作数装入IDTR中
保护模式汇编语言程序设计 →局部描述符表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,段已被访问