Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text
- .globl main
- main:
- addi $sp, $sp, 4
- sw $ra, 0($sp)
- la $a0, A
- la $a1, B
- lw $a2, N
- jal proc
- lw $ra, 0($sp)
- jr $ra
- proc:
- addi $sp, $sp, -16 # alloco 16 bytes sullo stack
- sw $ra, 12($sp)
- sw $s0, 0($sp)
- sw $s1, 8($sp)
- sw $s2, 4($sp)
- add $s0, $zero, $a0 # $s0 = &(A[0])
- add $s1, $zero, $a1 # $s1 = &(B[0])
- add $s2, $zero, $a2 # $s2 = n
- add $t0, $zero, $zero # t0 = i
- loop:
- lw $t1, 0($s1) # $t1 = B[i]
- addi $t2, $t0, 1 # $t2 = i+1
- add $t3, $zero, $zero # $t3 = j
- add $v0, $zero, $zero # inizializzo $v0 (somma) a 0
- jal somma # somma restituita in $v0
- add $s0, $a0, $zero # ripristino &A[0]
- add $t1, $t1, $v0 # $t1 = B[i] + somma dei primi i elementi di A
- sw $t1, 0($s1) # inserisco il nuovo valore in B[i]
- addi $t0, $t0, 1 # i = i+1
- addi $s1, $s1, 4 # incremento &B[i]
- beq $t0, $s2, Exit # if (i = n) goto Exit
- j loop
- somma:
- lw $t4, 0($s0) # $t4 = A[i]
- add $v0, $v0, $t4 # somma = somma + A[i]
- addi $t3, $t3, 1 # j = j+1
- addi $s0, $s0, 4 # incremento &A[i]
- beq $t3, $t2, Exitsomma # if j = i+1 goto Exitsomma
- j somma
- Exitsomma:
- jr $ra
- Exit:
- lw $ra, 12($sp)
- lw $s0, 0($sp)
- lw $s1, 8($sp)
- lw $s2, 4($sp)
- addi $sp, $sp, 16 # dealloco 16 bytes sullo stack
- jr $ra
- .data
- A: .word 3 2 5 1
- B: .word 2 6 1 3
- N: .word 4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement