Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #################################################################
- # add.s
- # addition of an array
- #
- #################################################################
- .text
- .align 2
- .globl main
- main:
- sub $sp, $sp, 32 # adjust stack to save variables
- sw $ra, 20 ($sp) # index i
- sw $fp, 16($sp) # a2 contains the sum
- addu $fp, $sp, 28 # t2 contains the constant 4
- li $s0, 0
- jal Fred
- lw $ra,20($sp)
- lw $fp,16($sp)
- addiu $sp,$sp,32
- j $ra
- Fred: #addi $sp, $sp, -8
- add $s1, $s1, $ra
- sw $s1, 4($sp)
- sw $s0, 0($sp)
- addi $s0, $s0, 1
- jal Bill
- j $s1
- Bill: #addi $sp, $sp, -8
- add $s2, $s2, $ra
- sw $s2, 8($sp)
- addi $s0, $s0, 2
- jal Charlie
- j $s2
- Charlie: add $s3, $s3, $ra
- sw $s3, 12($sp)
- addi $s0, $s0, 3
- j $s3
- loop: mul $t1, $a1, $t2 # t1 gets i * 4
- lw $a3, Nstart($t1)# a3 = N[i]
- add $a2, $a2, $a3 # sum = sum + N[i]
- add $a1, $a1, 1 # i = i + 1
- beq $a1, $a0, STOR # go to STOR if finished
- j loop
- STOR: sw $a2, Result # store the sum at Result
- .data
- .align 2
- Nstart: .word 8, 25, -5, 55, 33, 12, -78
- Size: .word 7
- Result: .word 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement