标签:limit base 分割 intel tor 格式 present and 电脑
参考文章:Intel64 and IA32 Architectures Software Developer‘s Manual Volume 2 ~ 3
GDT(Global Descriptor Table,全局描述符表)是x86和amd64架构最最基本的数据结构,它存储在内存中,以GDTR记录基地址,是让电脑从实模式跳转到保护模式的台阶。在汇编代码中,我们可以用 lgdt [gdt_base] 来加载GDT到内存中。
GDT的结构是这样的:
GDTR.base-> _________________________ \
|________``````````_______| |
|_________Items___________| | <- GDTR.limit
|________``````````_______| /
然后GDTR的结构是这样的:
79 16 15 0
|________________Base_________________|____Limit_____|
其实,它并没有这么高深,而只是一个表状结构而已。而里边的表项(描述符)则因为历史原因被分割得乱七八糟。
在实模式里,描述符(没此一说)就是个long-jmp pointer,如下所示。
31 16 15 0
|_________Base__________|________Limit________|
而在保护模式里,它分成了两类:段描述符和系统描述符
段描述符的格式如下:
63 56 55 54 53 52 51 48 47 46 45 44 43 40 39 16 15 0
| Base(31:24) | G|DB| L|AVL|Limit(19:16)| P| DPL | S| Type |_______________Base(23:0)___________________|________Limit(15:0)___|
Granularity-----^ ^ ^ ^ ^ ^ ^ ^
Default op size----‘ | | | | | |
Long mode-------------‘ | | | | |
Available for developers-‘ | | | |
Present-----------------------------------‘ | | |
Descriptor Privilege Level-------------------‘ | |
Is system descriptor-------------------------------‘ |
Descriptor type: details under------------------------‘
标签:limit base 分割 intel tor 格式 present and 电脑
原文地址:http://www.cnblogs.com/js2xxx/p/7398744.html