美文网首页
[019][x86汇编语言]段描述符、段选择子格式(检测点11.

[019][x86汇编语言]段描述符、段选择子格式(检测点11.

作者: AkuRinbu | 来源:发表于2018-05-28 10:47 被阅读0次

    学习笔记

    《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表内的偏移地址
    加载段选择子0x0010 索引号是2.png 加载段选择子0x0008 索引号是1.png

    相关文章

      网友评论

          本文标题:[019][x86汇编语言]段描述符、段选择子格式(检测点11.

          本文链接:https://www.haomeiwen.com/subject/jerojftx.html