现在,你对于LDT是不是已经有了大致的了解了呢?简单来说,它是一种描述符表,与GDT差不多,只不过它的选择子的TI位必须置为1。
在运用它时,需要先用lldt指令加载ldtr,lldt的操作数是GDT中用来描述LDT的描述符。
上例的LDT很简单,只有一个代码段。不难想像,我们还可以在其中增加更多的段,比如数据段、堆栈段等,这样一来,我们可以把一个单独的任务所用到的所有东西封装在一个LDT中,这种思想是我们在后面章节中的多任务处理的一个雏形。
LDT与GDT一样也是一个单独的数据段,每一条内容都是一个段描述符。
SelectorLDT equ LABEL_DESC_LDT - LABEL_GDT
; Load LDT
mov ax, SelectorLDT
lldt ax
jmp SelectorLDTCodeA:0 ; 跳入局部任务