Me podrìan ayudar a saber en dónde está el error por favor?
Código
section .data msg1 db "Ingrese 5 números presionando [Enter] entre cada uno de ellos" , 10 len1 equ $-msg1 msg2 db "***MÉTODOS DE ORDENAMIENTO DISPONIBLES***", 10 len2 equ $-msg2 msg3 db "1. INSERTION SORT", 10 len3 equ $-msg3 msg4 db "2. SELECTION SORT", 10 len4 equ $-msg4 msg5 db "3. BUBBLE SORT", 10 len5 equ $-msg5 msg6 db "Ingrese el número correspondiente al método de ordenamiento deseado:", 10 len6 equ $-msg6 msg7 db 0xA len7 equ $-msg7 array db 0,0,0,0,0 la equ $-array section .bss res resb 10 section .text global _start _start: ;Mostrar mensaje 1 mov eax,4 mov ebx,1 mov ecx, msg1 mov edx, len1 int 0x80 mov esi, array mov edi, 0 call lee ;SALTO DE LÍNEA mov eax, 4 mov ebx, 1 mov ecx, msg7 mov edx, len7 int 0x80 jmp menu jmp end ;-------------------------------------------------------------- lee: push ebp mov ebp, esp ;Almacenamos los 5 números num: mov eax, 3 mov ebx, 0 mov ecx, res mov edx, 10 int 0x80 mov esi, res call atoi mov [res], eax mov al, [res] mov [esi], al inc edi inc esi cmp edi, la jb num pop ebp ret ;---------------------------------------------------------------- menu: ;MOSTRANDO MENÚ ;Mostrar mensaje 2 mov eax,4 mov ebx,1 mov ecx, msg2 mov edx, len2 int 0x80 ;SALTO DE LÍNEA mov eax, 4 mov ebx, 1 mov ecx, msg7 mov edx, len7 int 0x80 ;Mostrar mensaje 3 mov eax,4 mov ebx,1 mov ecx, msg3 mov edx, len3 int 0x80 ;Mostrar mensaje 4 mov eax,4 mov ebx,1 mov ecx, msg4 mov edx, len4 int 0x80 ;Mostrar mensaje 5 mov eax,4 mov ebx,1 mov ecx, msg5 mov edx, len5 int 0x80 ;SALTO DE LÍNEA mov eax, 4 mov ebx, 1 mov ecx, msg7 mov edx, len7 int 0x80 ;Mostrar mensaje 6 mov eax,4 mov ebx,1 mov ecx, msg6 mov edx, len6 int 0x80 ;SALTO DE LÍNEA mov eax, 4 mov ebx, 1 mov ecx, msg7 mov edx, len7 int 0x80 ;-------------------------------------------------------------------------------------- atoi: push ebp mov ebp, esp xor eax, eax .top: movzx ecx, byte [esi] ; obtener un caracter inc esi ; leer la siguiente dirección cmp ecx, '0' ; digito valido? jb .done cmp ecx, '9' ja .done sub ecx, '0' ; "convertir" caracter a numero imul eax, eax, 10 ; multiplicar el resultado obtenido por 10 add eax, ecx ; sumatoria jmp .top ; until done .done: pop ebp ret ;------------------------------------------------------------------ end: ;FINAL DEL PROGRAMA mov eax, 1 xor ebx, ebx int 0x80