相当简单的问题。我正在尝试读取一个数组并打印出来,但是它没有打印出应有的样子。
例如如果我从键盘上读取了5个元素:1、2、3、4、5,则打印结果为5 0 0 00。所以我可以理解,它从第5个元素开始打印,并且添加了零,因为其余的该数组为空,但我不知道如何解决。
#bubblesort
.data
array:
.space 100
message1:
.asciiz "Number of elements: "
message2:
.asciiz "The elements:\n"
space:
.asciiz " "
message3:
.asciiz "Result: \n"
.text
main:
li $v0, 4
la $a0, message1
syscall
li $v0, 5
move $t0, $v0
syscall
li $v0, 4
la $a0, message2
syscall
xor $s0, $s0, $s0
readarray:
beq $s0, $t0, afterread
li $v0, 5
syscall
sw $v0, array
addi $s0, $s0, 1
j readarray
afterread:
xor $s0, $s0, $s0
li $v0, 0
la $t1, array
li $v0, 4
la $a0, message3
syscall
print:
beq $s0, $t0, afterprint
lw $t2, 0($t1)
addi $t1, $t1, 4
li $v0, 1
move $a0, $t2
syscall
li $v0, 4
la $a0, space
syscall
addi $s0, $s0, 1
j print
afterprint:
li $v0, 10
syscall