1. 程式人生 > >真實模式與保護模式的定址方式

真實模式與保護模式的定址方式

文章目錄

一、真實模式定址

  • CPU 在真實模式下,地址匯流排只有 20 位,定址空間為 1 M。

  • 20 位的目標實體地址取決於兩個條件,一是 16 位的段基址,二是 16 位的偏移地址。

  • 20 位目標實體地址 = ( 16 位段基址 << 4 ) + 16 位偏移地址

  • 段基址由 16 位段暫存器給出,偏移地址由機器指令運算元給出。

二、保護模式定址

  • CPU 在保護模式下,地址匯流排有 32 位,定址空間為 4 G。

  • 32 位的目標實體地址取決於兩個條件,一是 16 位的段選擇子 S S ,二是 32 位的偏移地址 O O

  • 16 位的段選擇子由 16 位段暫存器給出,偏移地址由機器指令運算元給出。

  • 16 位段暫存器的高 13 位(第 3~15 位共 13 位)作為全域性描述符表中對應段描述符的索引,找到段描述符後,取出其中的 32 位段基址 B B ,20 位段界限 L L

    和 1 位粒度標誌 G G ,設段最大長度為 X X ,若 G G 為 1,則 X = L X = L ,若 G G 為 0,則 X = L × G X = L\times G 。通過特權級檢查後,則取出偏移地址 O,若 O &gt; X O &gt; X ,則觸發異常,若 O &lt; = X O &lt;= X ,則允許訪問。

三、參考資料

《深入分析 Linux 核心原始碼》 陳莉君 編著
《計算機組成與系統結構(第 2 版)》袁春風 主編