.GLOBAL bsort
.DATA
.TEXT
bsort:
PUSHL %EBP
MOVL %esp,%ebp
pushl %eax
pushl %ebx
pushl %ecx
pushl %edx
pushl %esi
pushl %edi
movl 8(%ebp),%ecx
movl 12(%ebp),%ebx
movl $(-1), %esi
movl %ecx,%edi
ciclo_esterno:
dec %edi
cmp $1,%edi
jl fine
ciclo_interno:
inc %esi
cmp %esi,%edi
je ciclo_esterno
movl (%ebx,%esi,4),%eax
movl %esi,%ecx
inc %ecx
cmp (%ebx,%ecx,4),%eax
jng ciclo_interno
movl %eax,%edx
movl (%ebx,%ecx,4),%eax
movl %eax,(%ebx,%esi,4)
movl %edx,(%ebx,%ecx,4)
jmp ciclo_interno
fine:
popl %edi
popl %esi
popl %edx
popl %ecx
popl %ebx
popl %eax
popl %ebp
ret
è l'algoritmo del bubble sort....riceve num di elementi e indi del vettore sullo stack. E' scritto per gnu ASM, molto simile all'asm normale...basta togliere i % di fronte ai nomi di registri ed invertire sorgente e destinazione nelle istruzioni tipo movl. come promesso, a ki trova l'errore pago una pizza
ciaoz