Ciao a tutti,
avrei bisogno di un vostro consiglio circa un programma scritto in assembly che lavora con le matrici.
Per farvi capire bene cosa deve fare il programma in questione vi faccio un esempio:
Immaginate di avere la seguente matrice formata da 4 righe e 3 colonne:
1 2 3
4 5 6
7 8 9
10 11 12
la voglio stampare in questo modo:
1 4 7 10
2 5 8 11
3 6 9 12
Il codice che tra qualche riga vi postero funziona egregiamente se lavoro con una matrice che ha lo stesso numero di righe e di colonne, mentre negli altri casi non so perchè ma non funziona a dovere.
Ecco il codice:
Datemi una mano per piacere.codice:.data MATRICE: .word 1,2,3,4,5,6,7,8,9,10,11,12 N_RIGHE: .word 4 N_COL: .word 3 NEW_LINE: .ascii "\n" SPAZIO: .ascii " " .text .globl main main: lw $s0,N_RIGHE # numero righe lw $s1,N_COL # numero colonna li $t0,0 # indice righe li $t1,0 #indice colonne WHILE: beq $t1,$s1,ESCI beq $t0,$s0,CAMBIA_COL mul $t5,$s0,$t0 #t5 rappresenta l'elemento k della matrice add $t5,$t5,$t1 mul $t5,$t5,4 li $v0,1 lw $a0,MATRICE($t5) syscall li $v0,4 la $a0,SPAZIO syscall add $t0,$t0,1 j WHILE ESCI: li $v0,10 syscall CAMBIA_COL: li $t0,0 add $t1,$t1,1 li $v0,4 la $a0,NEW_LINE syscall j WHILE
Grazie

Rispondi quotando