程序完成运行,从底部开始运行

问题描述 投票:0回答:1

我需要有关MIPS中代码的帮助。尽管我一再尝试,但结果还是程序运行完了。

代码:

 initialize data
.data
size: .word 10
arr: .word 1,15,0,-3,99,48,-17,-9,20,15
.text
.globl main
main:
la $s0, size # initialize registers
lw $s1, 0($s0) # $s1 = size
ori $s2, $0, 0
ori $s5, $0, 0 # $s5 = i
la $s6, arr # $s6 = &arr

L1:
bge $s5, $s1, DONE 
# <for-body>
lw $s7, 0($s6) # $s7 = arr[i]
addu $s2, $s2, $s7 # sum += arr[i]

UPDATE:  # <update>
addi $s5, $s5, 1 # i++
addi $s6, $s6, 4 # move array pointer
DONE:
li $v0, 10
syscall
assembly mips mips32
1个回答
0
投票

您的循环不完整。在两条addi行之后,您必须跳回到L1。

© www.soinside.com 2019 - 2024. All rights reserved.