codice:
.data
MATRICE: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
N_RIGA: .word 3
N_COL: .word 5
NEW_LINE: .ascii "\n"
VIRGOLA: .ascii ","
.text
.globl main
main:
lw $s0,N_RIGA # numero totale righe
lw $s1,N_COL # numero totale colonne
la $s2,MATRICE
li $t0,0 # indice riga
li $t1,0 # indice colonna
ciclo:
beq $t0,$s0,esci
# il registro t3 verrà usato per calcolare il valore k-esimo della matrice
mul $t3,$s1,$t0
add $t3,$t3,$t1
mul $t3,$t3,4
li $v0,4
la $a0,MATRICE($t3) #questa non la capisco tanto bene
syscall
add $t1,$t1,1 # incremento indice colonna
beq $t1,$s1,ciclo2 # se ho finito di scansionare tutte le colonne della i-esima riga ($t0) vado a ciclo 2
li $v0,4
la $a0,VIRGOLA
syscall
j ciclo
ciclo2:
add $t0,$t0,1 # incremento indice riga
li $t1,0 # setto a 0 indice colonna
li $v0,4
la $a0,NEW_LINE # perchè?
syscall
j ciclo
esci:
li $v0,10
syscall
Grazie