# Add the numbers in an array

.data 0x0
sum:    .space 4
i:      .space 4
a:      .word 7,8,9,10,8

.text 0x3000
.globl main
main:
     sw    $0, 0($0)       # sum = 0;
     sw    $0, 4($0)       # for (i = 0;
     lw    $9, 4($0)       # allocate register for i
     lw    $8, 0($0)       # choose register $8 to hold value for sum
loop:
     sll   $10, $9, 2     # covert "i" to word offset
     lw    $10, 8($10)   # load a[i]
     addu  $8, $8, $10    # sum = sum + a[i];
     sw    $8, 0($0)       # update variable in memory
     addi  $9, $9, 1      # for (...; ...; i++
     sw    $9, 4($0)         # update memory
     slti  $10, $9, 5     # for (...; i<5;
     bne   $10, $0, loop
end: 
     ori   $v0, $0, 10     # system call 10 for exit
     syscall               # we are out of here.
