Locazione di memoria

di il
2 risposte

Locazione di memoria

Buongiorno, vorrei un'aiuto per capire questo argomento:
*codice c che calcola la somma dei valori di un vettore
Int v[128];
Int sum;
Int count;
Sum=0;
For(count=0; count<128;count++)
Sum=sum+v[count];
Assembler:
addi $4,$0,0;
addi $5,$0,0;
addi $6,$0,128;
Start_loop:slot $1,$5,$6;
beh $0,$1,end_loop;
Lw $7,100[$5];
.
.
.
end_loop: se $4, 612[$0]

Il mio dubbio è: perché l'array è allocato a partire dall'indirizzo 100 incluso e occupa fino all'indirizzo 612 escluso. Come si definisce il valore di partenza della memoria?
Allegati:
32269_dbb44b4d38426de52daf4b1041e2109c.jpg
32269_dbb44b4d38426de52daf4b1041e2109c.jpg

2 Risposte

  • Re: Locazione di memoria

    L'indirizzo di partenza non è importante, 100 è dato per semplicità ma potrebbe essere 64 o 112 senza che cambi nulla. L'indirizzo finale è determinato, ovviamente, dalla grandezza dell'area. In questo caso, 128 elementi di 4 byte ognuno occupano 512 byte, partendo da 100 arrivano a 612 escluso (quindi da 100 a 611)
  • Re: Locazione di memoria

    Grazie mille per l'aiuto, ora è molto chiaro
Devi accedere o registrarti per scrivere nel forum
2 risposte