« Forum anonimo (sperimentale)

Dubbio su una domanda presente negli esercizi "Istruzioni Assembly MIPS 2 - Esercizi"

4 replies
Last
Buongiorno,  

La domanda a cui faccio riferimento è la seguente:  un dato di 4 byte si trova a questo indirizzo di memoria: 0x10001203. È possibile recuperarlo dalla memoria con un unico trasferimento?

La risposta al quesito è no, ma vorrei sapere il motivo. Infatti sommando l'immediato 0x9203, con l'estensione di segno opportuna, al $gp inizializzato a 0x10008000, posso ottenere l'indirizzo cercato. 

Grazie per l'attenzione e il tempo che dedicherete alla mia domanda.

4 replies
  1. Re: Dubbio su una domanda presente negli esercizi "Istruzioni Assembly MIPS 2 - Esercizi"
    Buongiorno,

    come dicevo in un altro post sul forum i trasferimenti in memoria per l'architettura MIPS32 devono avvenire per indirizzi allineati (ovvero indirizzi che sono multipli di 4).

    Non essendo 0x10001203 un multiplo di 4 non si può effettuare una semplice lw, ma si deve usare una ulw (Unaligned load word) che essendo una pseudoistruzione in realtà è poi tradotta in più istruzioni che vanno a effettuare più trasferimenti.


  2. Re: Dubbio su una domanda presente negli esercizi "Istruzioni Assembly MIPS 2 - Esercizi"

    Salve a lei, la risposta è negativa perché, a prescindere da come possa essere ottenuto l'indirizzo in questione, si tratta di un indirizzo non allineato al 4-byte e quindi non può essere spostato in un unico trasferimento. L'hardware riesce a spostare un dato 4-byte solo se questo si trova ad un indirizzo allineato al 4-byte. Si tratta di una questione hardware che viene addirittura verificata dal simulatore spim, che per altri versi è piuttosto approssimativo per quanto riguarda il realismo delle sue simulazioni.

  3. Re: Dubbio su una domanda presente negli esercizi "Istruzioni Assembly MIPS 2 - Esercizi"
    Non avevo tenuto conto dell'allineamento. 

    Vi ringrazio.

  4. Re: Dubbio su una domanda presente negli esercizi "Istruzioni Assembly MIPS 2 - Esercizi"

    Aggiungo un commento: questo modo di approcciare lo studio (vorrei sapere il motivo) è, per esperienza, l'unico per superare l'esame senza patemi, in quanto mette in grado di capire come rispondere alle domande che non avete già visto. L'alternativa è ripetere l'esame più volte sperando nell'evento fortunato di avere tutte domande di cui si ricorda a memoria la risposta. Ricordo l'esultanza di noi docenti quando un "veterano", alla 19a ripetizione dell'esame, riuscì a strappare un 18. Vi suggeriamo di chiedervi sempre il motivo di una risposta, come metodo in generale, non solo per "architettura degli elaboratori".