Riempimento degli elementi di una matrice Programma che definisce una matrice 10x10 in cui ogni elemento assume come valore la somma dell'indice di riga e dell'indice di colonna, cioè matrice(i,j)=i+j con i,j=0,...,9. .data nrig: .word 10 # definizione del valore del numero di righe della matrice ncol: .word 10 # definizione del valore del numero di colonne della matrice matrice: .word 0:100 # definizione dell'area di memoria che conterrà la matrice # (100 words inizializzate col valore 0) .text .globl main main: li $t0,0 # in $t0 viene posto l'indice di riga i che assume valori da 0 a 9 li $t1,0 # in $t1 viene posto l'indice di colonna j che assume valori da 0 a 9 li $t2,0 # in $t2 viene posto l'indice k utilizzato per lo scorrimento delle # locazioni di memoria lw $t3,nrig lw $t4,ncol ciclo: add $t5, $t0, $t1 sw $t5, matrice($t2) addi $t2, $t2, 4 addi $t1, $t1, 1 blt $t1, $t4, ciclo li $t1, 0 addi $t0,$t0,1 blt $t0, $t3, ciclo li $v0, 10 syscall # Quando si carica il programma si può osservare che nell'area Data Segments si ha: # a partire dall'indirizzo 0x10010000 # - i dati 0x0000000a 0x0000000a 0x00000000 0x0000000 # - a partire dall'indirizzo 0x10010010 lo spazio riservato alla matrice