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 $rasiz 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