hocam tam emin olmamakla birlikte hatırlayabildiğim kadarıyla 3. sorunun cevabı şöyle olacak

.data
    A: .word 1,2,3,4,5,... #array
    size: .word 10 # arrayin boyutu
main:
    li $s1, 0 # top = $s1
    la $t1, size #array size
    lw $s0, 0($t1)
    la $s3, A # A dediğimiz array, tanımlıysa gerek yok
    ori $s2, $0, 0 # loop'un i'si
    
loop:
    bge $s2, $s0, exit #if $s2 buyukse $s0 dan exite git.
    lw $s4, 0($s3) # A[i]
    addi $s2, $s2, 1 # i=i+1
    addi $s3, $s3, 8 # array iteration
    add $s1, $s1, $s4 # top+=A[i]
    j loop

exit:    
    syscall
    jr $ra
siz deneyip doğrusunu yaparsınız ama aşağı yukarı bu şekilde olacak

4.soruda da bunu fonksiyonla yapmanızı istiyor anladığım kadarıyla
bu kodu anladıktan sonra onu kendiniz yaparsınız ama şöyle bir ipucu bırakayım
loop içinden fonksiyona gitmek için jal fonksiyon_adı
fonksiyondan loop a dönmek için j loop yapmalısınız
fonksiyonu da yukardaki loop gibi tanımlayacaksınız