Advertisement
Guest User

Untitled

a guest
Nov 30th, 2019
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # B[i] = B[i]+(Somma da 0 a i [A[j]])
  2. .data
  3.     A: .word 1 2 3 4 5 6 7 8
  4.     B: .word 10 11 12 13 14 15 16 17
  5.     n: .word 8
  6.    
  7. .text
  8.  
  9. main:
  10.     la $a0, A
  11.     la $a1, B
  12.     la $a2, n
  13.     lw $a2, 0($a2)
  14.    
  15.     addi $sp, $sp, -4
  16.     sw $ra, 0($sp)
  17.    
  18.     jal somma
  19.    
  20.     lw $ra, 0($sp)
  21.     addi $sp, $sp, 4
  22.    
  23.     jr $ra
  24.    
  25. somma:
  26.     sll $a2, $a2, 2      # n *= 4
  27.     add $t0, $0, $0      # indice i = 0
  28.     somma2:
  29.         bne $t0, $a2, else      # if i != n goto else
  30.         jr $ra
  31.        
  32.         else:
  33.             add $a3, $a1, $t0     # $a3 = &B[i]
  34.             add $t2, $0, $0       # indice j = 0
  35.            
  36.             addi $sp, $sp, -12
  37.             sw $ra, 0($sp)
  38.             sw $a1, 4($sp)
  39.             sw $a2, 8($sp)        
  40.            
  41.             add $s0, $0, $0       # $s0 = 0
  42.             add $a1, $t2, $0      # $a1 = j
  43.             addi $a2, $t0, 4      # $a2 = i+1
  44.            
  45.             jal for
  46.            
  47.             lw $ra, 0($sp)
  48.             lw $a1, 4($sp)
  49.             lw $a2, 8($sp)
  50.             addi $sp, $sp, 12
  51.            
  52.             sw $v0, 0($a3)        
  53.             addi $t0, $t0, 4       # i += 1
  54.             j somma2
  55.            
  56. for:
  57.     bne $a1, $a2, else2    #if j != i goto else2
  58.     lw $v0, 0($a3)         #$v0 = B[i]
  59.     jr $ra
  60.  
  61.     else2:
  62.     addi $sp, $sp, -8
  63.     sw $ra, 0($sp)
  64.     sw $s0, 4($sp)
  65.    
  66.     add $t3, $a0, $a1     #$t3 = &A[j]
  67.     lw $t3, 0($t3)        #$t3 = A[j]
  68.     add $s0, $0, $t3     #$s0 += A[j]
  69.     addi $a1, $a1, 4      #j += 1
  70.    
  71.     jal for
  72.    
  73.     add $v0, $v0, $s0    #$v0 += A[j]
  74.    
  75.     lw $ra, 0($sp)
  76.     lw $s0, 4($sp)
  77.    
  78.     addi $sp, $sp, 8
  79.     jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement