Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 出现垃圾值的原因?_Search_Memory_Heap_Mips_Mars Simulator - Fatal编程技术网

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