52 lines
614 B
ArmAsm
52 lines
614 B
ArmAsm
.globl _start
|
|
.extern sort
|
|
|
|
.data
|
|
|
|
array:
|
|
.ascii "ABC "
|
|
.ascii "ZZZ "
|
|
.ascii "CCC "
|
|
.ascii "BBB "
|
|
.ascii "DED "
|
|
.ascii "\n"
|
|
.equ len, (.) - array
|
|
|
|
.text
|
|
|
|
_start:
|
|
.option push
|
|
.option norelax
|
|
la gp, __global_pointer$
|
|
.option pop
|
|
|
|
li a7, 64
|
|
li a0, 1
|
|
la a1, array
|
|
li a2, len
|
|
ecall
|
|
|
|
la a0, array
|
|
li a1, len/4
|
|
li a2, 4
|
|
la a3, cmp
|
|
li a4, 0
|
|
|
|
call sort
|
|
|
|
li a7, 64
|
|
li a0, 1
|
|
la a1, array
|
|
li a2, len
|
|
ecall
|
|
|
|
li a7, 93 # sys_exit
|
|
li a0, 0
|
|
ecall
|
|
|
|
cmp:
|
|
lw t0, (a0)
|
|
lw t1, (a1)
|
|
sgtu a0, t0, t1
|
|
ret
|