SHARE
TWEET

Esercizio 5 Assembly

Ferdinando_Ottaviani Nov 13th, 2019 97 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text
  2. .globl main
  3.  
  4. main:   la $a0, M #carico M in a0
  5.         lw $a1, N #carico N in a1
  6.         add $v0,$0,$0 #inizializzo v0
  7.         add $v1,$0,$0 #inizializzo v1
  8.         jal diagonale #chiamo diagonale
  9.         jr  $ra #return
  10.  
  11. diagonale:
  12.            addi $sp,$sp,-4 #dealloco sp
  13.            sw $ra, 0($sp) #salvo il return
  14.            add $t0,$0,$0 #contatore i=0
  15.            mult $a1,$a1 #N*N
  16.            mflo $t2 #salvo il risultato di lo
  17.            addi $t3,$0,4 #variabile 4
  18.            mult $t3,$t2 #4*N
  19.            mflo $t2 #$t2 = N*N*4 (sarebbe l'indirizzo massimo della matrice +4)
  20.            jal contatore #chiamo contatore
  21.  
  22. exit:
  23.            lw $ra, 0($sp) #rialloco sp
  24.            addi $sp,$sp,4 #carico il return
  25.            jr $ra #return
  26.  
  27. contatore: slt $v1,$t0,$t2 #if $t0<$t2; $v1=1 else: $v1=0
  28.            beq $v1,$0,exit #if $v1=0 jump to exit
  29.            add $t5,$a0,$t0 #$t5=N+i
  30.            lbu $t6,0($t5) #$t6=M[i]
  31.            add $v0,$v0,$t6 #salvo il risultato
  32.            mult $t3,$a1 #4*N
  33.            mflo $t6 #salvo il risultato
  34.            addi $t7,$t6,4 #(4*N)+4
  35.            add $t0,$t0,$t7 #$t0= $t0+(4*N)+4
  36.            jal contatore #richiamo la ricorsiva
  37.  
  38. .data
  39. M: .word 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #matrice quadrata
  40. N: .word 4  #len matrice
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top