codice:
.data
riga: .asciiz "inserisci la riga: "
colonna: .asciiz "inserisci la colonna: "
mat: .asciiz "inserisci la matrice: "
spazio: .asciiz " "
acapo: .asciiz "\n"
strout: .asciiz "matrice: "
.text
.globl main
main:
la $a0,riga #
li $v0,4 #printf("inserisci la riga: ");
syscall #
li $v0,5 #scanf("%d",&riga);
syscall #
move $s1,$v0
la $a0,colonna #
li $v0,4 #printf("inserisci la colonna: ");
syscall #
li $v0,5 #scanf("%d",&colonna);
syscall #
move $s2,$v0
la $a0,mat #
li $v0,4 #printf("inserisci la matrice: ");
syscall #
move $t0,$zero #i=o
lui $s0,0x1000 #base matrice
#inizio del for per acquisire i dati
loop_for_lettura:
slt $t2,$t0,$s1 #se i<riga t2=1
beq $t2,$zero end_for_lettura #se t2==0 esci dal ciclo
#aggiorna l'indice del vettore
mul $t4,$t0,$s2 #t4=i*c
move $t1,$zero #j=o
addi $t0,$t0,1 #i++
loop2:
slt $t3,$t1,$s2 #se j<colonna t3=1
beq $t3,$zero loop_for_lettura #se t2==0 esci dal ciclo
add $t4,$t4,$t1 # (i*c)+j
sll $t4,$t4,2
add $t5,$s0,$t4 #t5=indirizzo[i][j]
li $v0, 5 #lettura intero da tastiera
syscall
sw $v0,0($t5) #Memoria[t1+0]=v0 va mettere il valore letto
#nella posizione t1 della memoria
addi $t1,$t1,1 #j++
j loop2
j loop_for_lettura
end_for_lettura:
#fine del for per acquisire i dati
li $v0, 4 #stampa l'ultima stringa
la $a0, strout
syscall
move $t0,$zero #i=o
#inizio del for per stampare i dati
loop_for_stampa:
slt $t2,$t0,$s1 #se i<riga t2=1
beq $t2,$zero end_for_stampa #se t2==0 esci dal ciclo
#aggiorna l'indice del vettore
mul $t4,$t0,$s2 #t4=i*c
move $t1,$zero #j=o
addi $t0,$t0,1 #i++
la $a0,acapo #
li $v0,4 #va a capo
syscall #
loop2stampa:
slt $t3,$t1,$s2 #se j<colonna t3=1
beq $t3,$zero loop_for_lettura #se t2==0 esci dal ciclo
add $t4,$t4,$t1 # (i*c)+j
sll $t4,$t4,2
add $t5,$s0,$t4 #t5=indirizzo[i][j]
la $a0,spazio #
li $v0,4 #stampa uno spazio vuoto
syscall #
lw $t6,0($t5) #Carico in t5 l'elemento contenuto in Memoria[t5+0]
move $a0,$t6 #
li $v0,1 #stampa t6 (l'elemento contenuto in Memoria[t5+0])
syscall #
addi $t1,$t1,1 #j++
j loop2stampa
j loop_for_stampa
end_for_stampa:
#fine del for per acquisire i dati
li $v0,10 #esci
syscall
Potreste darmi una mano a capire dove è l'errore?