i386的段機制

i386中與段機制有關的寄存器有:CS(16bits),DS(16bits),SS(16bits),ES(16bits),GDTR(32bits),LDTR(32bits),用於存放“影子”描述項的寄存器。

CS,DS,SS,ES之所以是16位寬度,是爲了與之前的CPU兼容。

i386的段機制的作用是將32邏輯位地址映射成32位的線性地址。32位的線性地址經過i386的頁機制映射成32位的物理地址。

GDTR,LDTR中存放的是段描述表的首地址。GDTR存放Global Descriptor Table的首地址,LDTR存放Local Descriptor Table的首地址。

CS,DS,SS,ES16位的結構爲:高13位爲段描述符下標,接下來的1位是TI,最低2位是RPL。

TI:0時使用GDTR,1時使用LDTR。RPL表示權限等級。0最高,3最低。

CPU根據CS,DS,SS,ES的13位段描述符下標,加上GDTR或LDTR表示的段描述表首地址,可找到相應的段描述符。

從段描述符裏面獲取段基地址,加上32位邏輯地址作爲偏移,計算出線性地址。

發佈了22 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章