• 05-04-2020, 20:34:34
    #1
    Ricam 3 ve 4üncü soruları çözebilme imkanınız varsa çözebilmeniz, şimdiden teşekkür ediyorum. 1 ve 2 çözülmüştür.

    Ricam 3 ve 4üncü soruları çözebilme imkanınız varsa çözebilmeniz, şimdiden teşekkür ediyorum. 1 ve 2 çözülmüştür.
  • 05-04-2020, 21:17:15
    #2
    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