Registrele de control (CR0, CR2, CR3, CR4) determină modul de operare al procesorului: comutarea între Mod Protejat și Mod Long pe 64 de biți, precum și activarea memoriei virtuale paginate.
; Comutarea spațiului de adrese al procesului (comutare context de memorie virtuală):
global incarca_tabela_pagini
incarca_tabela_pagini:
; RDI conține adresa fizică a structurii PML4 (rădăcina tabelelor de paginare):
mov cr3, rdi ; Scrierea în CR3 golește automat memoria cache TLB a procesorului!
ret
; Citirea adresei care a generat o eroare fatală de pagină (Page Fault #PF):
citeste_adresa_page_fault:
mov rax, cr2 ; CR2 conține adresa liniară exactă care a provocat eroarea
ret
Semnificație hardware: Bitul 31 (PG) din CR0 activează paginarea, iar registrul CR3 indică baza fizică a tabelei de pagini utilizate de unitatea MMU.
Întrebări & Exemple de Cod:
Registrele de Control CR0, CR2, CR3 și CR4: Paginarea Memoriei și Modul LongAi o nelămurire despre utilizarea comenzii
Registrele de Control CR0, CR2, CR3 și CR4: Paginarea Memoriei și Modul Longsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.