MIPS小白:将十位无符号数利用选择排序从大到小排序问题

#include<stdio.h>
int main() {
	int a[10];
	int i, j, k;
	for (i = 0;i < 10; i++){
		scanf("%d",&a[i]);
	}
	for(i=0;i<10;i++)
		for(j=i+1;j<10;j++)
			if (a[i] < a[j]) {
				k = a[i];
				a[i] = a[j];
				a[j] = k;
			}
	for (i = 0;i < 10; i++){
		printf("%d ", a[i]);
	}
	return 0;
}

这是用C写的选择排序,我想将它转换成MIPS汇编语言

下面是我写的MIPS汇编代码

.text
.globl main
main:
	la $a0,inputNumbers
	li $v0,4
	syscall

	la $t9,array       #t9为数组首地址
	addi $t8,$zero,10   #$t8为数组的长度 10 a[10]

	move $t0,$zero    #$t0为变量i  int i = 0
input:
	li $v0,5      #从键盘读取一个数 读取整型赋值给$v0
	syscall
	
	move $t7,$t0  #访问数组第一个元素
	mul $t7,$t7,4  #数组元素所占字节数*循环变量+数组的起始地址=数组[循环变量]
	addu $t6,$t7,$t9  #无符号数相加      将a[i]第一个值存到$6
	sw $v0,0($t6)    #把一个字的数据从寄存器存到存储器 地址偏移量为0 
	addi $t0,$t0,1   # i++
	blt $t0,$t8,input # i < 10 循环
	move $t0,$zero   #循环完成后置 i = 0
	addu $t1,$t0,1
	
loop1:
	move $t7,$t1
	mul $t7,$t7,4 
	addu $t5,$t7,$t9    #a[j]第一个值存储到$5
	lw $t3,0($t5)        #获取a[j]
	lw $t2,0($t6)        #获取a[i]
	blt $t2,$t3,jump     #a[i] < a[j]
	addi $t1,$t1,1       # 不满足 j++
	blt $t1,$t8,loop1    #j < 10 继续循环
	
jump:
	sw $t3,0($t6)
	sw $t2,0($t5)      #交换a[i]与a[i]的值
	blt $t1,$t8,loop1    #j < 10 继续循环
	
loop2:
	addi $t0,$t0,1
	addi $1,$0,1        #每次循环都做j = i + 1
	blt $t0,$t8,loop1
	
output:
	la $a0,aftersort
	li $v0,4
	syscall
	move $t0,$zero
print:
	move $t7,$t0
	mul $t7,$t7,4
	addu $t6,$t7,$t9
	
	lw $a0,0($t6)
	li $v0,1
	syscall
	
	la $a0,end
	li $v0,4
	syscall
	
	addi $t0,$t0,1
	blt $t0,$t8,print
	
	li $v0,10
	syscall

但是结果输入什么值,输出的还是什么值,没有变化,这是为什么

求解答 谢谢!!

我自己已经解决了 谢谢