我需要帮助来对汇编中具有5个不同值的数组求和

时间:2019-11-10 19:58:04

标签: assembly mips mars

问题是在第二个索引值之后它停止了,所以它去了-> 数组[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 :(得分:0)

.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