70 lines
2.7 KiB
NASM
70 lines
2.7 KiB
NASM
// Sort number from biggest to smallest
|
|
// 88 66 44 22 1 11 33 55 77 99
|
|
|
|
addi.w $r1, $r1, 88
|
|
addi.w $r2, $r2, 44
|
|
addi.w $r3, $r3, 1
|
|
addi.w $r4, $r4, 22
|
|
addi.w $r5, $r5, 55
|
|
|
|
slt $r10, $r1, $r2 // Compare r1 and r2
|
|
beq $r10, $r0, 16 // If r1 >= r2, branch to next
|
|
addi.w $r11, $r1, 0 // r11 = r1 (temp storage)
|
|
addi.w $r1, $r2, 0 // r1 = r2 (swap)
|
|
addi.w $r2, $r11, 0 // r2 = r11 (swap)
|
|
|
|
slt $r10, $r1, $r3 // Compare r1 and r3
|
|
beq $r10, $r0, 16 // If r1 >= r3, branch to next
|
|
addi.w $r11, $r1, 0 // r11 = r1 (temp storage)
|
|
addi.w $r1, $r3, 0 // r1 = r3 (swap)
|
|
addi.w $r3, $r11, 0 // r3 = r11 (swap)
|
|
|
|
slt $r10, $r1, $r4 // Compare r1 and r4
|
|
beq $r10, $r0, 16 // If r1 >= r4, branch to next
|
|
addi.w $r11, $r1, 0 // r11 = r1 (temp storage)
|
|
addi.w $r1, $r4, 0 // r1 = r4 (swap)
|
|
addi.w $r4, $r11, 0 // r4 = r11 (swap)
|
|
|
|
slt $r10, $r1, $r5 // Compare r1 and r5
|
|
beq $r10, $r0, 16 // If r1 >= r5, branch to next
|
|
addi.w $r11, $r1, 0 // r11 = r1 (temp storage)
|
|
addi.w $r1, $r5, 0 // r1 = r5 (swap)
|
|
addi.w $r5, $r11, 0 // r5 = r11 (swap)
|
|
|
|
slt $r10, $r2, $r3 // Compare r2 and r3
|
|
beq $r10, $r0, 16 // If r2 >= r3, branch to next
|
|
addi.w $r11, $r2, 0 // r11 = r2 (temp storage)
|
|
addi.w $r2, $r3, 0 // r2 = r3 (swap)
|
|
addi.w $r3, $r11, 0 // r3 = r11 (swap)
|
|
|
|
slt $r10, $r2, $r4 // Compare r2 and r4
|
|
beq $r10, $r0, 16 // If r2 >= r4, branch to next
|
|
addi.w $r11, $r2, 0 // r11 = r2 (temp storage)
|
|
addi.w $r2, $r4, 0 // r2 = r4 (swap)
|
|
addi.w $r4, $r11, 0 // r4 = r11 (swap)
|
|
|
|
slt $r10, $r2, $r5 // Compare r2 and r5
|
|
beq $r10, $r0, 16 // If r2 >= r5, branch to next
|
|
addi.w $r11, $r2, 0 // r11 = r2 (temp storage)
|
|
addi.w $r2, $r5, 0 // r2 = r5 (swap)
|
|
addi.w $r5, $r11, 0 // r5 = r11 (swap)
|
|
|
|
slt $r10, $r3, $r4 // Compare r3 and r4
|
|
beq $r10, $r0, 16 // If r3 >= r4, branch to next
|
|
addi.w $r11, $r3, 0 // r11 = r3 (temp storage)
|
|
addi.w $r3, $r4, 0 // r3 = r4 (swap)
|
|
addi.w $r4, $r11, 0 // r4 = r11 (swap)
|
|
|
|
slt $r10, $r3, $r5 // Compare r3 and r5
|
|
beq $r10, $r0, 16 // If r3 >= r5, branch to next
|
|
addi.w $r11, $r3, 0 // r11 = r3 (temp storage)
|
|
addi.w $r3, $r5, 0 // r3 = r5 (swap)
|
|
addi.w $r5, $r11, 0 // r5 = r11 (swap)
|
|
|
|
slt $r10, $r4, $r5 // Compare r4 and r5
|
|
beq $r10, $r0, 16 // If r4 >= r5, branch to next
|
|
addi.w $r11, $r4, 0 // r11 = r4 (temp storage)
|
|
addi.w $r4, $r5, 0 // r4 = r5 (swap)
|
|
addi.w $r5, $r11, 0 // r5 = r11 (swap)
|
|
|