0

グローバル記述子テーブル (GDT) の基本を確認し、 asm を使用して "GDT.inc" を正常に作成したので、ブートローダーに簡単に含めることができます。赤ちゃんのステップとして、メモリ内の最初のバイトからバイト 0xFFFFFFFF (メモリ内の任意の部分) まで読み書きするようにコード記述子とデータ記述子を構成しました。

; null descriptor 
    dd 0                ; null descriptor--just fill 8 bytes with zero
    dd 0 

; code descriptor:          ; code descriptor. Right after null descriptor
    dw 0FFFFh           ; limit low
    dw 0                ; base low
    db 0                ; base middle
    db 10011010b            ; access
    db 11001111b            ; granularity
    db 0                ; base high

; data descriptor:          ; data descriptor
    dw 0FFFFh           ; limit low (Same as code)
    dw 0                ; base low
    db 0                ; base middle
    db 10010010b            ; access
    db 11001111b            ; granularity
    db 0                ; base high

ここでの目的は、GDT を使用して 2 つの別個のリージョンを作成することです。たとえば、最初の 512B を 1 つのリージョンとして、次の 512B を別のリージョンとして、スペースを未使用のままにします。

そのために何ができますか?

4

1 に答える 1