Asembler x86/Zaawansowana architektura: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Doles (dyskusja | edycje)
Nie podano opisu zmian
Doles (dyskusja | edycje)
Linia 14:
 
Oto wyjaśnienia poniższych skrótów:
*<font color ="green">RPL</font> - (ang. Requestor Privilege Level) opisuje obecny stan uprzywilejowania CPU (ang. Current Privilege Level) gdy odpowiedni selektor jest ładowany do rejestru CS. Mówiąc prościej RPL zawiera informacje o uprawnieniach które posiada procesor w momencie zapisywania wartości w rejestrze kodu. Jeśli program z trybu użytkownika wywołuje taką operację wtedy CPL zawiera uprawnienia właśnie danego programu, które zostaną zapisane w RPL. Jak można się domyśleć, uprawnienia w przypadku programu z przestrzeni użytkownika będą mniejsze niż te z przestrzeni jądra. RPL zajmuje bity 0 oraz 1.
*<font color ="green">Index</font> - jest to numer deskryptora segmentu zawartego w Globalnej Tablicy Deskryptorów (GDT) lub Lokalnej Tablicy Deskryptorów (LDT). Pole Index zajmuje bity od 3. do 15.
*<font color ="green">TI</font> - (ang. Table Indicator) oznacza, czy dany deskryptor segmentu znajduje się w GTK (gdy TI = 0) lub w LDT (gdy TI = 1). Pole to zajmuje bit nr 2.
 
Selektor segmentu zapisywany jest w rejestrze segmentowym jak CS, DS, SS, ES,FS, GS. Gdy posiadamy pewny '''adres logiczny''' np. 0xc00d:1001 wówczas wartość 0xC00D będzie właśnie w pewnym rejestrze segmentownym i bedzie stanowić selektor segmentu, nie zaś jego adres (de facto takowy segment w rzeczywistości nie istnieje - patrz "Płaski model pamięci").
Linia 42:
 
[[Grafika:Adres_liniowy.jpg|480px]]
 
 
===2. Translacja na adres fizyczny===