Search 出现垃圾值的原因?
因此,当我为数组中的一个值调用这个函数时,它会打印出一个垃圾值,然后在下一行打印我真正想要打印的内容。当我输入一个不在数组中的值时,它会出错。我对这件事还不熟悉,所以可能是件愚蠢的事Search 出现垃圾值的原因?,search,memory,heap,mips,mars-simulator,Search,Memory,Heap,Mips,Mars Simulator,因此,当我为数组中的一个值调用这个函数时,它会打印出一个垃圾值,然后在下一行打印我真正想要打印的内容。当我输入一个不在数组中的值时,它会出错。我对这件事还不熟悉,所以可能是件愚蠢的事 为什么在sw$v0,key之后有syscall?至于你的问题,你遗漏了一堆代码,这些代码是重现问题所必需的。使用Mars中的调试功能单步执行程序,直到找到出错的地方。为什么在sw$v0,key之后会出现syscall?至于你的问题,你遗漏了一堆代码,这些代码是重现问题所必需的。使用Mars中的调试功能单步执行程序
为什么在
sw$v0,key
之后有syscall
?至于你的问题,你遗漏了一堆代码,这些代码是重现问题所必需的。使用Mars中的调试功能单步执行程序,直到找到出错的地方。为什么在sw$v0,key
之后会出现syscall
?至于你的问题,你遗漏了一堆代码,这些代码是重现问题所必需的。使用Mars中的调试功能单步执行程序,直到找到出错的地方。
.data
array: .word 2,3,1,5,6,7,1,4,8,8 #elements
N: .word 10 # 10 elements
key: .word 0
int: .word 9
search:
la $a0, array
la $t0, N
lw $t0, ($t0)
sll $t0, $t0, 2
addi $t0, $t0, -4
add $a1, $a0, $t0
la $a0, array
jal isort #insert function from other function
li $v0, 4
la $a0, enterKey # Display text
syscall
li $v0,5 # read input
syscall
sw $v0, key
syscall
move $t0, $s0
lw $t1, N
lw $t2, ($t0)
li $t3,0 # $t3 i = 0
lw $t4, int
lw $t5, key
lw $t6, int
loopKey:
beq $t3, $t1, endKey # if i = n, loop ends
bne $t2, $t5, condKey # if the elements are not equal
move $t4, $t3 # assign index found to variable
j endKey
condKey:
addi $t3, $t3, 1 # i++
addi $t0, $t0, 4
lw $t2, ($t0)
j loopKey
endKey:
beq $t4, $t6, noKey #does not appear to even work???
li $v0, 4
la $a0, keyFmsg
syscall
li $v0, 1
add $t4, $t4, 1 # have to add 1 for location not index
add $a0, $zero, $t4 # prints the location
syscall
j displayMenu
noKey: #not working idk why
li $v0, 4
la $a0, keyNFmsg
syscall
j displayMenu