Adresování v rámci 80286
Reálný režim
= real mode, režim reálné adresy
V reálném režimu je procesor 80286 plně kompatiblní se svými předchůdci. Procesor v tomto režimu pracuje skoro stejně jako procesor 8086.
Chráněný režim
= protected mode, režim virtuální adresy
Jedná se o úplně nový režim, neslučitelný s 8086. Tento režim podporuje paralelní zpracování více programů. Proto je nezbytné, aby procesor v tomto režimu poskytoval ochrany mezi jednotlivými spuštěnými programy a různé úrovně oprávnění přístupu k prostředkům počítače. Procesor v tomto režimu také používá jiný model pro vytváření adresy. Adresa je vytvářena ze dvou 16bitových složek nazývaných
selektor a
offset za pomoci tzv.
tabulek deskriptorů. Výsledná adresa je 24-bitová, což umožňuje procesoru adresovat maximálně 2
24 B = 16 MB operační paměti.
Paměťový prostor
1) globální (GAS) – kód programu, který je určen pro více uživatelů
2) lokální (LAS) – prostor určený jenom tomu jednomu konkrétnímu procesu
Paměťový prostor je rozdělen na segmenty.
Určení segmentu – příslušný segment je určen:
- bází segmentu (odkud ten segment začíná)
- limitem segmentu
- typ a přístupová práva
Určení konkrétní adresy se provede offsetem. Ten je 16 bitový. Tudíž je možno adresovat maximálně 2
16 bytů, což je 64 kB.
Virtuální adresa
- je 32 bitová
- je složena ze selektoru a offsetu
RPL = dvojice bitů, která slouží k určení adresových práv. Adresace se neúčastní. Jelikož to jsou 2 bity, tak z toho vyplývá že budou podporovány 4 úrovně oprávnění.
TI = určuje, jestli se bude jednat o lokální adresový prostor nebo globální adresový prostor. Nebo jinak řečeno, zda se použije deskriptorová tabulka
GDT nebo
LDT.
Deskriptorové tabulky jsou vybrány bitem TI takto:
GDT = globální deskriptorová tabulka (pokud TI = 1)
LDT = lokální deskriptorová tabulka (pokud TI = 0)
Nejvyšších třináct bitů v selektoru slouží jako index do příslušné tabulky deskriptorů. Jedna položka tabulky deskriptorů má 64 bitů, ze kterých je vybráno 24 bitů sloužících jako tzv. bázová adresa. K této bázové adrese se potom přičte 16bitový offset (přičtení je provedeno přímo bez jakéhokoliv posunutí). Výsledkem je 24bitová fyzická adresa, pomocí které je možno adresovat maximálně 16 MB operační paměti.
Adresace se účastní 30 bitů => to je 1 GB paměti
Popisovač
- to je jedna položka tabulky deskriptorů
- dohromady má 64 bitů
Jeden popisovač obsahuje:
- bázovou adresu segmentu (24 bitů) - to je adresa, na které segment začíná.
- limit segmentu (16 bitů), který určuje maximální velikost segmentů
- přístupová práva k segmentu (8 bitů) - z nich je možno určit i typ segmentu
- Krajní 16 bitové "nic" - je přichystáno pro vyšší procesory