main:
la $t3 array
loop:
la $a0, msg1 #output message
li $v0, 4
syscall
li $v0, 5 #read in user input
syscall
move $t0, $v0
beq $t0, -99, endloop
beq $t1,20,endloop #get user input up to 20 times
addi $t1, $t1, 1
sw $t0,($t3)
addi $t3,$t3,4
b loop #loop until it reaches 20
endloop:
li $v0,4
la $a0, msg2
syscall
li $v0, 1
move $a0, $t1
syscall
li $v0, 4
la $a0, newline
syscall
li $t5, 0
#t1 counter
#t3 array address
printloop:
beq $t5, $t1, printend
lw $a0,4($t3)
li $v0, 1
syscall
addi $t5, $t5, 1
addi $t3, $t3, 4
j printloop
printend:
} 在我添加数组值之前,我试图确保当用户输入值时将其存储到数组中。但我不知道它是否是商店,因为当我打印其唯一的打印零。 任何人都可以告诉我,如果我的数组循环错误或我的打印循环。 谢谢,
答案 0 :(得分:0)
这里很简单的问题。
在printloop
之前您忘记将array
的起始地址重新加载到$t3
。
在la $t3 array
标签之前添加printloop
。
另外,我不知道你为什么要以4偏移量加载lw $a0,4($t3)
。请改为使用零偏移:lw $a0,0($t3)
。