Assembly/Organizzazione di sistema/Componenti base di sistema/Il sottosistema memoria: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Diablo (discussione | contributi)
mNessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
{{Linguaggio Assembly}}
 
Su un sistema 80x86, si possono memorizzare al massimo 2<sup>n</sup> 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.<br/>
==Introduzione==
In C:
Su un sistema 80x86, si possono memorizzare al massimo 2<sup>n</sup> 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.
char Memoria[2<sup>n</sup>];
In VB:
Dim Memoria As Variant
Memoria = Array(0, 0, 0, 0, 0, 0, ..., 0)
In Pascal:
Memoria[2<sup>n</sup>] of byte;
<br/>
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.<br/>
Questo è quello che succede quando si opera con singoli byte. Ma se abbiamo bisogno di word o dword che facciamo?<br/>
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.
 
[[Categoria:Linguaggio Assembly|Memoria - Sottosistema]]