Advertisement
Guest User

Untitled

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