Assembly 如何设置LDT?

Assembly 如何设置LDT?,assembly,x86,memory-segmentation,Assembly,X86,Memory Segmentation,我一直在开发一个32位操作系统,我想让程序从内核中分离出段 为此,我需要使SS和DS寄存器实际上指向程序堆栈和.data部分 根据我的研究,我相信这是通过设置本地描述符表来实现的 我假设这与GDT非常相似,LDT是通过lldt加载的 然而,我不知道如何使用这一点,一旦我的部分设置。谁能解释一下吗?不,不需要单独设置LDT来设置用户空间SS/CS/DS段描述符 在中断处理程序中就可以做到这一点(CPU需要释放进程的内核空间SS,以便从用户空间进入中断) 不,不需要设置单独的LDT来设置用户空间SS

我一直在开发一个32位操作系统,我想让程序从内核中分离出段

为此,我需要使SS和DS寄存器实际上指向程序堆栈和.data部分

根据我的研究,我相信这是通过设置本地描述符表来实现的

我假设这与GDT非常相似,LDT是通过lldt加载的


然而,我不知道如何使用这一点,一旦我的部分设置。谁能解释一下吗?

不,不需要单独设置LDT来设置用户空间SS/CS/DS段描述符


在中断处理程序中就可以做到这一点(CPU需要释放进程的内核空间SS,以便从用户空间进入中断)

不,不需要设置单独的LDT来设置用户空间SS/CS/DS段描述符


在中断处理程序中就可以做到这一点(CPU需要释放进程的内核空间SS,以便从用户空间进入中断)

嗯,你找不到比《英特尔手册》更好的教程了。真的,可以找到《英特尔80386编程手册》(386手册比新的要短,而且写得更好;它有您需要的要点)。或英特尔网站上的IA32编程手册。它包含了您正在搜索的所有信息。

嗯,您找不到比《英特尔手册》更好的教程了。真的,可以找到《英特尔80386编程手册》(386手册比新的要短,而且写得更好;它有您需要的要点)。或英特尔网站上的IA32编程手册。它包含您正在搜索的所有信息