首先是 定义 两个任务的LDT表
这是再GDT表中的选择子
首先是宏定义:这里的 0x4 , 3 先不用管
这里 一个task 一个LDT表
然后是在GDT表中 增加关于LDT的描述。
这里需要加上一个图。
还是这个图
然后是在 TSS表中,设置LDT的表的地址。
然后是更改 TSS表中,将 应用数据段+应用代码段 全部改成 LDT的数据段+代码段
然后再汇编总,再进入 task0 之前 ,设置 LDTR寄存器。
选择子 是加载 GDT的表项, 还是加载LDT的表象呢?
原因是再选择子 中有一个标志位
这里有个图。
并且再 汇编中进入 task0 之前, 之前是压栈的是 GDT中的应用数据段+应用代码段,所以这里也要改成 LDT的数据段+LDT的代码段