Advertisement
Guest User

Untitled

a guest
Nov 10th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text
  2. .globl main
  3.  
  4. main:
  5.       addi $sp, $sp, 4
  6.       sw $ra, 0($sp)
  7.       la $a0, A
  8.       la $a1, B
  9.       lw $a2, N
  10.       jal proc
  11.       lw $ra, 0($sp)
  12.       jr $ra
  13.  
  14. proc:
  15.    
  16.      addi $sp, $sp, -16      # alloco 16 bytes sullo stack
  17.      sw $ra, 12($sp)
  18.      sw $s0, 0($sp)          
  19.      sw $s1, 8($sp)          
  20.      sw $s2, 4($sp)
  21.  
  22.      add $s0, $zero, $a0      # $s0 = &(A[0])
  23.      add $s1, $zero, $a1      # $s1 = &(B[0])
  24.      add $s2, $zero, $a2      # $s2 = n
  25.      add $t0, $zero, $zero    # t0 = i
  26.  
  27.  
  28. loop:
  29.      
  30.      lw $t1, 0($s1)           # $t1 = B[i]
  31.      addi $t2, $t0, 1         # $t2 = i+1
  32.      add $t3, $zero, $zero    # $t3 = j
  33.      add $v0, $zero, $zero    # inizializzo $v0 (somma) a 0
  34.      jal somma                # somma restituita in $v0
  35.      add $s0, $a0, $zero      # ripristino &A[0]
  36.      add $t1, $t1, $v0        # $t1 = B[i] + somma dei primi i elementi di A
  37.      sw $t1, 0($s1)           # inserisco il nuovo valore in B[i]
  38.      addi $t0, $t0, 1         # i = i+1
  39.      addi $s1, $s1, 4         # incremento &B[i]
  40.      beq $t0, $s2, Exit       # if (i = n) goto Exit
  41.      j loop
  42.  
  43.  
  44. somma:
  45.      
  46.       lw $t4, 0($s0)          # $t4 = A[i]
  47.       add $v0, $v0, $t4       # somma = somma + A[i]
  48.       addi $t3, $t3, 1        # j = j+1
  49.       addi $s0, $s0, 4        # incremento &A[i]
  50.       beq $t3, $t2, Exitsomma # if j = i+1 goto Exitsomma
  51.       j somma
  52.  
  53.  
  54. Exitsomma:
  55.       jr $ra
  56.  
  57. Exit:
  58.  
  59.      lw $ra, 12($sp)
  60.      lw $s0, 0($sp)          
  61.      lw $s1, 8($sp)          
  62.      lw $s2, 4($sp)
  63.      addi $sp, $sp, 16       # dealloco 16 bytes sullo stack    
  64.      jr $ra
  65.  
  66.  
  67. .data
  68.  
  69.      A: .word 3 2 5 1
  70.      B: .word 2 6 1 3
  71.      N: .word 4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement