本文主要是介绍36 使用LDT(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先是 定义 两个任务的LDT表
这是再GDT表中的选择子
首先是宏定义:这里的 0x4 , 3 先不用管
这里 一个task 一个LDT表
然后是在GDT表中 增加关于LDT的描述。
这里需要加上一个图。
还是这个图
然后是在 TSS表中,设置LDT的表的地址。
然后是更改 TSS表中,将 应用数据段+应用代码段 全部改成 LDT的数据段+代码段
然后再汇编总,再进入 task0 之前 ,设置 LDTR寄存器。
选择子 是加载 GDT的表项, 还是加载LDT的表象呢?
原因是再选择子 中有一个标志位
这里有个图。
并且再 汇编中进入 task0 之前, 之前是压栈的是 GDT中的应用数据段+应用代码段,所以这里也要改成 LDT的数据段+LDT的代码段
这篇关于36 使用LDT(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!