Assembly/Organizzazione di sistema/Componenti base di sistema/Il sottosistema memoria: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 27: | Riga 27: | ||
</table> |
</table> |
||
[[Categoria:Linguaggio Assembly|Memoria - Sottosistema]] |
[[Categoria:Linguaggio Assembly|Memoria - Sottosistema]] |
||
{{capitolo |
|||
|NomeLibro=Assembly |
|||
|Libro=Assembly |
|||
|CapitoloPrecedente=Il Bus di Sistema |
|||
|NomePaginaCapitoloPrecedente=Assembly/Organizzazione di sistema/Componenti base di sistema/System Bus |
|||
|CapitoloSuccessivo=Il sottosistema Input/Output |
|||
|NomePaginaCapitoloSuccessivo=Assembly/Organizzazione di sistema/Componenti base di sistema/Il sottosistema I/O |
|||
}} |
Versione delle 08:57, 1 giu 2007
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ù piccula 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 l 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ì:
- Divide la word o la dword in singoli bytes;
- Scrive il Low Byte (quello all'estrema sinistra) nella locazione scelta;
- Scrive tutti gli altri bytes nelle locazioni successive.
Modulo precedente | Torna a | Modulo successivo |