40 lines
490 B
NASM
40 lines
490 B
NASM
.data
|
|
a:
|
|
40
|
|
20
|
|
50
|
|
60
|
|
80
|
|
30
|
|
10
|
|
70
|
|
n:
|
|
8
|
|
.text
|
|
main:
|
|
sub %x3, %x3, %x3
|
|
sub %x4, %x4, %x4
|
|
load %x0, $n, %x8
|
|
outerloop:
|
|
blt %x3, %x8, innerloop
|
|
end
|
|
addi %x3, 1, %x4
|
|
innerloop:
|
|
addi %x3, 1, %x4
|
|
innerloopz:
|
|
blt %x4, %x8, swap
|
|
addi %3, 1, %x3
|
|
jmp outerloop
|
|
swap:
|
|
load %x3, $a, %x5
|
|
load %x4, $a, %x6
|
|
blt %x5, %x6, exchange
|
|
addi %x4, 1, %x4
|
|
jmp innerloopz
|
|
exchange:
|
|
sub %x7, %x7, %x7
|
|
add %x0, %x5, %x7
|
|
store %x6, 0, %x3
|
|
store %x7, 0, %x4
|
|
addi %x4, 1, %x4
|
|
jmp innerloopz |