Saya menemukan banyak situs Web dan buku-buku yang menjelaskan cara kerja manajemen memori pada CPU 8086 dan kemudian x86 dalam Real Mode. Saya mengerti, saya pikir, bagaimana dua nilai 16 bit, alamat segmen dan offset digabungkan untuk mendapatkan alamat fisik 20 bit linear (menggeser segmen empat bit ke kiri, tambahkan offset; segmen 64K dan mulai setiap 16 byte).
Tetapi saya tidak dapat menemukan situs Web atau buku yang bagus yang menjelaskan cara kerja manajemen memori dalam Mode Terlindungi, khususnya perbedaan antara 80286 dan 80386.
Adakah yang bisa mengarahkan saya ke situs web atau buku yang bagus (atau jelaskan di sini)?
(Untuk kredit tambahan, yaitu upvote, bagaimana cara kerjanya dalam Long Mode?)
sumber
Untuk mode nyata, tidak ada manajemen memori, hanya kalikan register segmen dengan 16 dan tambahkan offset kemudian letakkan ini hasil 21bit (ya 21bit karena 0xFFFF * 0x10 + 0xFFFF = 0xFFFF0 * 0xFFFF = 0x1FFFEF atau 1_1111_1111_1111_1110_1111b, nilai 21bit), pada buss alamat.
Untuk mode lama, segmentasi ada, tetapi deskriptor memiliki basis 0 dan batas 0xFFFFFFFFFFFFFFFFFF (16EB) sehingga mode datar, paging ada di sekitar dan seperti paging PAE, tetapi Page Directory Pointer Table diperpanjang dari 4 entri menjadi 512 entri dan Level Halaman. 4 Tabel dengan 512 entri yang masing-masing mengarah ke Tabel Direktori Pointer Halaman yang berbeda.
Dan berikut adalah beberapa situs yang menjelaskannya secara lebih rinci: http://en.wikipedia.org/wiki/Real_mode untuk mode nyata dan http://en.wikipedia.org/wiki/Long_mode untuk mode ling
sumber