学习笔记
《x86汇编语言:从实模式到保护模式》
https://www.jianshu.com/p/d481cb547e9f
存储器段描述符格式(Segment Descriptor)
- 存储器段描述符格式 单个描述符在GDT中占8字节(即64位)
- 段描述符的TYPE字段.png
段选择子格式(Segment Selector)
- 段选择子格式(Segment Selector).png
检测点11.1 解答
1、某描述符是64位的0x4F9AFFFFFFFFFF
,请问,段基地址是多少?段界限是多少?G、D、L、AVL、P、DPL、S和TYPE各是多少?
检测点11.1 第1题 解读描述符.png
2、32位保护模式下,某段为数据段,基地址为0x002FC0F0,段的长度是2MB,粒度是4KB,已经位于物理内存中,请给出其描述符的低32位以及高32位。
检测点11.1 第2题 给出描述符.png界限值 + 1 = 表的大小
进入保护模式后:段选择子
- 进入32位保护模式,段寄存器 CS 、DS、 ES、 FS、 GS、 SS ,它们还是16位的,但是不再存着所谓的段地址了,而是成为段选择器,里面存着段选择子,段选择子里面有描述符索引,根据这个索引去位于内存的GDT(Global Descriptor Table 全局描述符表)里找真正的段基地址(线性地址);
- GDT有很多描述符:代码段描述符、数据段描述符、栈段描述符;
- 在GDT里,每个描述符,占用8个字节单元;
-
索引号 乘以 8
得到要找的描述符在GDT表内的偏移地址;
网友评论