40 lines
522 B
NASM
40 lines
522 B
NASM
.data
|
|
a:
|
|
70
|
|
80
|
|
40
|
|
20
|
|
10
|
|
30
|
|
50
|
|
60
|
|
n:
|
|
8
|
|
.text
|
|
main:
|
|
load %x0, $n, %x3
|
|
load %x0, $n, %x9
|
|
init:
|
|
subi %x9, 1, %x9
|
|
addi %x0, 0, %x4
|
|
loopi:
|
|
addi %x0, 0, %x5
|
|
loopj:
|
|
addi %x5, 1, %x6
|
|
load %x6, $a, %x8
|
|
load %x5, $a, %x7
|
|
addi %x5, 1, %x5
|
|
check:
|
|
beq %x5, %x3, loopout
|
|
blt %x8, %x7, loopj
|
|
subi %x5, 1, %x30
|
|
addi %x30, 1, %x29
|
|
store %x8, $a, %x30
|
|
store %x7, $a, %x29
|
|
jmp loopj
|
|
loopout:
|
|
addi %x4, 1, %x4
|
|
beq %x4, %x9, escape
|
|
jmp loopi
|
|
escape:
|
|
end |