|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Memoria logica e fisica indirizzabile
Salve,
innanzitutto qual è la differenza tra memoria fisica e logica. Io credo che la memoria logica è tutta quella indirizzabile dal processore e cioè se per indirizzare questo utilizza registri da 32 bit si potranno indirizzare massimo 2^32 locazioni di memoria da 1 byte. La memoria fisica invece è quella realmente installata. Dico bene ? Se si ho questo esercizio da risolvere: Supponendo di estendere un indirizzo di 16 bit con il MSB, individuare la regione dello spazio di indirizzamento a 32 bit acceduta. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
up
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2003
Messaggi: 16462
|
Beh il fatto che utilizzi solo registri a 32 bit non implica automaticamente che l'indirizzamento della memoria sia a 32 bit. Un esempio classico si ha con i processori 386/486 e antecedenti conteneva registria 8/16 bit ma l'indirizzamento sulla memoria fisica avveniva con 20bit.
Si combinavano 2 registri di 16 bit (uno per determinare il segmento e l'altro per determinare l'offest) per ottenere alla fine un indirizzo fisico di 20bit. Il che spiega perche' i programmi dos non potevano gestire piu' di 1 MB di ram. Ora con i processori che usano un indirizzamento della memoria lineare ce' in linea di principio una corrispondenza tra indirizzamento logico a n bit e l'indirizzamento fisico a n bit. Pertanto con i processori moderni che usano 32 bit per la memoria logica, useranno 32 bit per l'indirizzamento della memoria fisica. Detto questo, se devi estendere un indirizzo di 16 bit a 32 bit tenendo conto del MSB occorre vedere se il MSB e' 1 o 0. Se l'indirizzo a 16 bit e' cosi : 1xxx xxxx xxxx xxxx dove x=0 o 1 l'estensione a 32 bit sara' 1111 1111 1111 1111 1xxx xxxx xxxx xxxx mentre se l'indirizzo a 16 bit e' cosi' 0xxx xxxx xxxx xxxx con x=0 o 1 la sua estensione a 32 bit sara' 0000 0000 0000 0000 0xxx xxxx xxxx xxxx quindi in pratica l'estensione dell'indirizzo a 32 bit coincide con quello a 16 bit. Ma solo in questo caso.
__________________
MICROSOFT : Violating your privacy is our priority |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:16.



















