mips 指令对指定的数组进行排序

来源:互联网 发布:模拟关注软件app 编辑:程序博客网 时间:2024/05/16 12:57
.globl main
.data
Array:.word 2,4,6,1
.text
main:
addi $t5,$zero,4
addi $t4,$zero,3#i($t4)=3
loop1:
la   $t1,Array#将数组地址存到$t1中
addi $t6,$zero,0# j($t6)=0
loop2:
lw   $t0,0($t1)#temp($t0) = array[j]
lw   $t7,4($t1)# t7=arry[j+1]
blt  $t0,$t7,skip#当array[j]<array[j+1],跳过
sw   $t7,0($t1)# arry[j]=arry[j+1]
sw   $t0,4($t1)# arry[j+1]=temp


skip:
addi $t6,$t6,1#j=j+1 
addi $t1,$t1,4
blt  $t6,$t4,loop2#当j<i,返回循环

subi $t4,$t4,1       #i=i-1
bne  $t4,$zero,loop1#如果i>0,重新循环

la   $t1,Array#out put segment
addi $t8,$zero,0
loop3:
lw   $a0,0($t1)
li   $v0,1           
syscall

addi $t1,$t1,4
addi $t8,$t8,1
blt  $t8,$t5,loop3