Мне нужна помощь, чтобы суммировать массив с 5 различными значениями в сборке - PullRequest
0 голосов
/ 10 ноября 2019

проблема в том, что после второго значения индекса он останавливается, поэтому он идет -> массив [0] + массив [1] -> здесь застревает, что приводит к выводу 1 ... 3 и навсегда 3 :(

это мой код:

.data
c:.word 1,2,3,4,5

.text

    la $s2, c
    li $t2, 0

loop:        



    add $t2, $t2, $t2 # 2*i
    add $t2, $t2, $t2 # 4*i
    add $t1, $t2, $s2 # a[i] = (4*i + $s2)
    lw  $t0, 0($t1)   # $t1 = a[i]
    add $s0, $s0, $t0 # g = h + a[i]

    li $v0, 1
    la $a0, ($s0)
    syscall

    add $t2, $t2, 1
    beq $s0, 15, endLoop

    j loop

endLoop:

    li $v0, 1
    la $a0, ($s0)
    syscall

1 Ответ

0 голосов
/ 11 ноября 2019
.data
c: .word 1,1,1,1,1

.text
    la $s2, c
    li $t2, 0
    li $t5, 0

loop:        
    add $t2, $t2, $t2 # 2*i
    add $t2, $t2, $t2 # 4*i
    add $t1, $t2, $s2 # a[i] = (4*i + $s2)
    lw  $t0, 0($t1)   # $t1 = a[i]
    add $s0, $s0, $t0 # g = h + a[i]

    li $v0, 1
    la $a0, ($s0)
    syscall

    add $t5, $t5, 1
    add $s2, $s2, 4
    beq $t5, 5 , fimLoop

    j loop

fimLoop:

    li $v0, 1
    la $a0, ($s0)
    syscall
...