; 在保護模式下32位(還是採用段機制訪問記憶體)
; 初始化臨時的要進入到ia-32e模式的gdt資料結構
label\_gdt64: dq 0x0000000000000000
label\_desc\_code64: dq 0x0020980000000000
label\_desc\_data64: dq 0x0000920000000000
gdtlen64 equ $ - label\_gdt64
gdtptr64 dw gdtlen64 - 1
dd label\_gdt64
; 我們知道gdtptr64中的值是要載入到gdtr暫存器中的, 而gdtr中的4b儲存的位址, 這裡我們發現位址時就是乙個線性位址而不是0x00000:004114等等
邏輯位址,線性位址,實體地址
邏輯位址轉線性位址 機器語言指令中出現的記憶體位址,都是邏輯位址,需要轉換成線性位址,再經過 mmu cpu中的記憶體管理單元 轉換成實體地址才能夠被訪問到。我們寫個最簡單的 hello world 程式,用 gcc 編譯,再反彙編後會看到以下指令 mov 0x80495b0 eax 這裡的記憶體位...
邏輯位址和實體地址及線性位址
邏輯位址 logical address intel為了相容,將遠古時代的段式記憶體管理方式保留了下來。邏輯位址指的是機器語言指令中,用來指定乙個運算元或者是一條指令的位址。以上例,我們說的聯結器為a分配的0x08111111這個位址就是邏輯位址。不過不好意思,這樣說,好像又違背了intel中段式管...
實體地址 線性位址 虛擬位址(1)
實體地址 線性位址 虛擬位址 os充分挖掘硬體潛能。os開發者需要知道物理記憶體的位址也需要提供一套機制為應用程式設計師提供另乙個記憶體空間,這個記憶體空間的大小可以和實際的物理記憶體大小之間沒有關係。實體地址 物理記憶體條所提供的記憶體空間,每個記憶體單元的實際位址就是實體地址。線性位址 一段連續...