■ 学习笔记
《x86汇编语言:从实模式到保护模式》
https://www.jianshu.com/p/d481cb547e9f
■ TI位
段选择子的位2是 表指示器 位(Table Indicator :TI)
https://www.jianshu.com/p/0ec493a0287c
-
TI = 0
,表示从GDT中加载描述符; -
TI = 1
,表示从LDT中加载描述符;
举例:TI = 0
,表示从GDT中加载描述符;
mov cx,0x0008
mov ds,cx
- 选择子
0x0008 = 0000_0000_0000_1_0_00B
,RPL=0
,TI=0
,说明是从GDT加载描述符;
■ 段描述符格式 段选择子格式
■ 处理器的4级环状结构
- Intel处理器可以识别4个特权级别,分别是
0 1 2 3
; - 数值越大特权级别越低,数值
3
是最低的特权级; - 数值越小特权级别越高,数值
0
是最高的特权级;
■ √√文件的OO的XX特权级(哪个文件的什么东西的特权级)
特权级分类
- 特权级区区三个字根本不知道是谁的什么东西;
- 横轴标题(DPL、RPL、CPL),纵轴标题(内核程序、用户程序、LDT、TSS),这是按照我自己的习惯分的,不是任何官方标准;
- 谁的什么特权级?这样的:
内核程序 代码段 描述符 的 DPL=0
,用户程序 数据段 选择子 的RPL=3
,就知道是谁的什么特权级了。
源码文件
- 加载程序
c13_mbr.asm
- 内核程序
c14_core.asm
- 用户程序
c13.asm
具体特权级设置
- 下面这张长图,基于源码文件部分,给出各个文件各个部分,具体的特权级设置;