对代码的一些语法不清楚的可以看https://blog.csdn.net/qq_40570410/article/details/106903645
################################################
# # include <iostream>
# using namespace std;
# int main(void) {
# int num;
# cin >> num;
# int* arr = new int[num];
# for (int i = 0; i < num; i++) {
# cin >> arr[i];
# }
# for (int i = 0; i < num-1; i++) {
# for (int j = 0; j+1 < num-i; j++) {
# if (arr[j] < arr[j+1]) {
# int temp = arr[j];
# arr[j] = arr[j+1];
# arr[j+1] = temp;
# }
# }
# }
# for (int i = 0; i < num; i++) {
# cout << arr[i] << " ";
# }
# return 0;
# }
##################################################
照葫芦画瓢
.data
array: .space 1024
input_num: .asciiz "enter the number of integer:\n"
input_int: .asciiz "enter the integer to be sorted:\n"
output_int: .asciiz "the sorted numbers are:\n"
seprate_flag: .asciiz " "
.text
.globl main
main:
la $a0, input_num #print reminder of scanf
li $v0, 4
syscall
li $v0, 5 #get the length of array
syscall
la $t6, array #$t6 is array of first address
move $t7, $zero #$t7 is i
move $t8, $v0 #$t8 is the length of array
move $t9, $zero #$t9 is j
input: #input array
la $a0,input_int #print hint
li $v0,4
syscall
li $v0,5 #scanf
syscall
#visit array
move $t0,$t7
mul $t0,$t0,4
addu $t1,$t0,$t6
sw $v0,0($t1)
addi $t7,$t7,1 #if $t7<$t8 goto input
blt $t7,$t8,input
move $t7,$zero
loop1:
move $t9, $zero #j=0
loop2:
#get a[i]
move $t0, $t9
mul $t0,$t0,4
addu $t1,$t0,$t6
lw $t2,0($t1) #$t2=$t1=a[i]
#get a[i+1]
addi $t0, $t9, 1
mul $t0,$t0,4
addu $t4,$t0,$t6
lw $t3,0($t4) #$t3=$t4=a[i]
bge $t2, $t3, skip #if a[i]>a[i+1],goto skip
sw $t3,0($t1) #else swap
sw $t2,0($t4)
skip:
addi $t9,$t9,1 #j++
addi $t0,$t9,1 #if j+1 < num-i goto loop2
sub $t1,$t8,$t7
blt $t0,$t1,loop2
addi $t7,$t7,1 #else i++,if i < num-1 goto loop1
sub $t2,$t8,1 #else next run
blt $t7,$t2,loop1
output:
#print hint
la $a0,output_int
li $v0,4
syscall
move $t7,$zero #i=0
print:
#print the element of array
move $t0,$t7
mul $t0,$t0,4
addu $t1,$t0,$t6
lw $a0,0($t1)
li $v0,1
syscall
la $a0,seprate_flag #print blank
li $v0,4
syscall
addi $t7,$t7,1
blt $t7,$t8,print # if $t7<$t8 goto print