Organizzazione della memoria Intel 8086
Indirizzi Il BUS degli indirizzi ha dimensione 20 bit quindi può indirizzare 220 byte cioè 1Mbyte Gli indirizzi numerati da 0 a 1.048.575 (in esadecimale da 00000 a FFFFF) La dimensione di una locazione è 8 bit La memoria è segmentata, cioè suddivisa in blocchi di locazioni consecutive (segmenti) Ogni segmento occupa 64Kbyte Una locazione di memoria è individuata dall’indirizzo segmento:offset segmento = numero del blocco da 64KB offset = spiazzamento all’interno del segmento
segmento e offset L’indirizzo fisico (20 bit) di una locazione di memoria è calcolato utilizzando due registri a 16 bit Un registro contiene il numero di segmento un altro registro contiene l'offset SEGMENTO 4byte OFFSET 4byte INDIRIZZO 5byte
I registri di segmento CS DS SS ES Code Segment (segmento per il codice) DS Data Segment (segmento per i dati) SS Stack Segment (segmento stack) ES Extra Segment (segmento extra)
Indirizzi delle istruzioni L’indirizzo “reale” delle istruzioni in un programma assembler è quindi dato dalla compbinazione dei 2 registri CS e IP La notazione comunemente usata è CS:IP