代碼實現LDT的使用

 

什麼是LDT?簡單來說就是一種描述符號表,它的選擇子T1位必須爲1。使用時,必須先lldt指令加載ldtr,lldt的操作數是GDT中用來描述LDT的描述符。

 

我在原來的代碼基礎上做了修改:原來代碼的地址http://blog.csdn.net/kkk8000/archive/2010/10/31/5977656.aspx

 

使用LDT的具體步驟如下:
1、增加一個32位代碼段,代碼如下:
  

 

2、增加一個段,內容爲LDT描述符號表,選擇子的T1位是1,代碼如下:
 

3、在GDT中新增加一個描述LDT的描述符,並定義選擇字子;代碼如下:

 

 

4、增加新描述符初始化代碼
  

 

5、加載ldt,跳轉到ldt代碼處

 

 

下面提供一張選擇子圖示:

 

下面是代碼pm.inc

 

 

主程序源代碼如下:

 

 

最後程序在DOSBOX模擬器下運行,先進入保護模式打印一行Welcome to Protect Mode,然後通過LDT打印出LDT三個字符,效果看下圖:
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章