Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text
- .globl main
- main: la $a0, M #carico M in a0
- lw $a1, N #carico N in a1
- add $v0,$0,$0 #inizializzo v0
- add $v1,$0,$0 #inizializzo v1
- jal diagonale #chiamo diagonale
- jr $ra #return
- diagonale:
- addi $sp,$sp,-4 #dealloco sp
- sw $ra, 0($sp) #salvo il return
- add $t0,$0,$0 #contatore i=0
- mult $a1,$a1 #N*N
- mflo $t2 #salvo il risultato di lo
- addi $t3,$0,4 #variabile 4
- mult $t3,$t2 #4*N
- mflo $t2 #$t2 = N*N*4 (sarebbe l'indirizzo massimo della matrice +4)
- jal contatore #chiamo contatore
- exit:
- lw $ra, 0($sp) #rialloco sp
- addi $sp,$sp,4 #carico il return
- jr $ra #return
- contatore: slt $v1,$t0,$t2 #if $t0<$t2; $v1=1 else: $v1=0
- beq $v1,$0,exit #if $v1=0 jump to exit
- add $t5,$a0,$t0 #$t5=N+i
- lbu $t6,0($t5) #$t6=M[i]
- add $v0,$v0,$t6 #salvo il risultato
- mult $t3,$a1 #4*N
- mflo $t6 #salvo il risultato
- addi $t7,$t6,4 #(4*N)+4
- add $t0,$t0,$t7 #$t0= $t0+(4*N)+4
- jal contatore #richiamo la ricorsiva
- .data
- M: .word 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #matrice quadrata
- N: .word 4 #len matrice
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement