Assembly/Organizzazione di sistema/Componenti base di sistema/Il sottosistema memoria

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search
Assembly
modifica
Indice


Su un sistema 80x86, si possono memorizzare al massimo 2n locazioni di memoria dove n è il numero di fili dell'Address Bus. La prima domanda che vi passerà per la testa, sarà sicuramente: "Ma cos'è una locazione di memoria?". Possiamo immaginare la memoria, come un gigantesco Array di elementi da un byte ciascuno. Il byte è la più piccola unità di dati gestibile sulla RAM.
In C:

char Memoria[2n];

In VB:

Dim Memoria As Variant
Memoria = Array(0, 0, 0, 0, 0, 0, ..., 0)

In Pascal:

Memoria[2n] of byte;


Quando il processore deve eseguire un'operazione come "Memoria[148] = 25", posiziona 148 sull'Address Bus, 25 sul Data Bus, e poi setta la linea RD del Control Bus a 1 e quella RW a 0.
Questo è quello che succede quando si opera con singoli byte. Ma se abbiamo bisogno di word o dword che facciamo?
Il processore gestisce automaticamente questi dati, lavorando così:

  1. Divide la word o la dword in singoli bytes;
  2. Scrive il Low Byte (quello all'estrema sinistra) nella locazione scelta;
  3. Scrive tutti gli altri bytes nelle locazioni successive.
Lettura della memoria con un x86
Scrittura della memoria con un x86
1leftarrow.png Modulo precedente

Il Bus di Sistema

1uparrow.png Torna a

Assembly

1rightarrow.png Modulo successivo

Il sottosistema Input/Output