Adresace paměti procesoru 8086
Šířka adresové sběrnice je 20 bitů - adresuje 1 MB (2
20 = 1 milion bajtů)
Adresu zapisujeme ve tvaru
segment : offset
Vytváření adresy
Postup při vytváření adresy:
- 16 bitový segmentový registr se posune o 4 bity vlevo (na nejnižší 4 bity se připíšou nuly), což odpovídá násobení 16.
- K takto vzniklému číslu se přičte offset. Ten je 16 bitový.
- Vznikne 20 bitová fyzická adresa, ukazující na konkrétní místo v paměti.
Díky takovému způsobu adresování je paměť rozdělena na jednotlivé segmenty o velikosti 64 kB. Segmentová část adresy po vynásobení 16 ukazuje na začátek segmentu a offset je pozice v segmentu vzhledem k jeho začátku.
Offset - určuje pohyb po segmentu. Je 16bitový => segment bude mít 64kB
Pro uložení segmentu slouží u procesoru 8086 čtyři druhy 16bitových segmentových registrů:
- CS (Code Segment) - je určen pro výpočet adresy instrukce
- DS (Data Segment) - pro výpočet adresy dat
- SS (Stack Segment) - při přístupu k zásobníku
- ES (Extra Segment) - může obsahovat pomocný datový segment