码迷,mamicode.com
首页 > 其他好文 > 详细

My first blog: GDT与基本描述符的结构

时间:2017-08-20 10:24:49      阅读:175      评论:0      收藏:0      [点我收藏+]

标签: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------------------------‘

My first blog: GDT与基本描述符的结构

标签:limit   base   分割   intel   tor   格式   present   and   电脑   

原文地址:http://www.cnblogs.com/js2xxx/p/7398744.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!