Mips 语言升序

Mips 语言升序,mips,qtspim,Mips,Qtspim,我必须按升序打印一组四个数字作为数组。但是我的输出没有正确地输出我所需要的。以下是我所拥有的: .data array: .space 40 prompt: .asciiz "Enter a number: " spacee: .asciiz " " output: .asciiz "The numbers ascending: " .text main: li $t1,4 #load 4 into $t1 la $a1,array #l

我必须按升序打印一组四个数字作为数组。但是我的输出没有正确地输出我所需要的。以下是我所拥有的:

.data 
array:  .space 40   
prompt: .asciiz "Enter a number: "  
spacee: .asciiz " " 
output: .asciiz "The numbers ascending: "


.text 

main: 
 li $t1,4         #load 4 into $t1 
 la $a1,array      #load a pointer to array into $a1 

loop:
 addi $t1,$t1,-1   #subtract 1 from $t1, save to $t1 
 li $v0,4          #load 4 into $v0 (print string) 
 la $a0,prompt     #load prompt text into $a 
 syscall           #display prompt 
 li $v0,5          #load 5 into $v0 (read integer)
 beq $v0, $zero, quit 
 syscall           #prompt for input 
 sw $v0,0($a1)     #store input int to array 
 addi $a1,$a1,4    #add 4 to $a1, save to $a1 
 bnez $t1,loop     #if $t1 isn't zero,goto loop 
 li $t1,9          #if $t1 is zero, load 9 into $t1 
 li $t2,9          #and load 9 into $t2 
 la $a1,array      #load array pointer into $a1 

loop1: 
 beqz $t2,here     #if $t2 is zero, goto here 
 addi $t2,$t2,-1   #subtract 1 from $t2, save to $t2 
 lw $t5,0($a1)     #load an input int into $t5 
 lw $t6,4($a1)     #load the next one into $t6 
 addi $a1,$a1,4    #add 4 to $a1, save to $a1 
 ble $t5,$t6,loop1 #if $t5 <= $t6, goto loop1 
 sw $t5,0($a1)     #else, store $t5 in $a1 
 sw $t6,-4($a1)     #and store $t6 in $a1-4 (swapping them) 
 bnez $t2,loop1    #if $t2 is not zero, to go loop1 

here: 
 la $a1,array      #load array into $a1 
 addi $t1,$t1,-1   #subtract 1 from $t1, save to $t1 
 add $t2,$t2,$t1   #add $t2 to $t1, save to $t2 
 bnez $t1,loop1    #if $t1 isn't zero, goto loop1 
 li $v0,4          #load 4 into $v0 (print string) 
 la $a0,output     #load 'the numbers are' into $a0 
 syscall           #display message to screen 
 la $a1,array      #load array pointer into $a1 
 li $t1,4         #load 10 into $t1 

loop2: 
 li $v0,1          #load 1 into $v0 (print int) 
 lw $a0,0($a1)     #load $a1 into $a0 
 syscall           #print first number to screen 
 li $v0,4          #load 4 into $v1 (print string) 
 la $a0,spacee     #load ' ' into $a0 
 syscall           #print ' ' to screen 
 addi $a1,$a1,4    #add 4 to $a1, save to $a1 
 addi $t1,$t1,-1   #subtract 1 from $t1, save to $t1 
 bnez $t1,loop2    #if $t1 isn't zero, goto loop2 


 quit:
 li $v0,10              #exit 
  syscall 
问题是。。。它不是printint,而是0
有什么帮助吗?

我真的不知道你想做什么。首先,你能告诉我们你想实现什么样的排序算法吗?