mips数组不打印

时间:2014-03-10 16:03:23

标签: arrays loops mips

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: 

} 在我添加数组值之前,我试图确保当用户输入值时将其存储到数组中。但我不知道它是否是商店,因为当我打印其唯一的打印零。 任何人都可以告诉我,如果我的数组循环错误或我的打印循环。 谢谢,

1 个答案:

答案 0 :(得分:0)

这里很简单的问题。

printloop之前您忘记将array的起始地址重新加载到$t3

la $t3 array标签之前添加printloop

另外,我不知道你为什么要以4偏移量加载lw $a0,4($t3)。请改为使用零偏移:lw $a0,0($t3)