一个关于保护模式LDT的问题,请高手指点!
情形:如果当前任务没有任何局部段,都是系统段,那么,当前的LDTR中的内容是0x0000,指向GDT的第一个空描述符(全0),对吗?
那么这个时候,比如我的段选择子为xxxx,其中TI为1,表示描述符在LDT中,偏移为yyyyyyyy,计算线性地址的流程如下:
1)根据LDTR中的内容(0x0000),找到LDT在GDT中的描述符,得到的结果还是全0,即LDT的基地址为0
2)根据xxxx中的高13位,找到LDT中对应的描述符zzzzzzzz,即地址0+xxxx
3)取出描述符zzzzzzzz中的基地址,加上偏移yyyyyyyy,得到最终的线性地址
但是,这个过程明显得到了个错误的地址,高手能告诉我哪里错了吗?