Menu
Coddy logo textTech

Códigos de Salida

Parte de la sección Fundamentos del Journey de Assembly de Coddy. Lección 33 de 45.

Cuando tu programa termina, envía un número pequeño al sistema operativo. Este número se denomina código de salida o estado de salida.

Por qué importan los códigos de salida:

Los scripts utilizan códigos de salida para comprobar si un programa se ejecutó correctamente. Por ejemplo, un script de Backup podría continuar solo si el comando anterior se ejecutó correctamente.

Los códigos de salida también ayudan con la depuración. Puedes usar distintos códigos de error para distintos problemas.

También puedes encadenar programas para que un programa se ejecute solo si el anterior tuvo éxito. El shell comprueba el código de salida antes de ejecutar el siguiente comando.

Las reglas de los códigos de salida:

Código de salidaSignificado
0Success: todo funcionó
1-255Algo salió mal

Elección de códigos de error:

Puedes usar cualquier número del 1 al 255. El significado de cada número depende de ti como programador.

Código de salidaLo que podrías querer decir
1Error general
2Falta el archivo de entrada
3Permiso denegado
4Error de red

 

¿Qué sucede si no estableces un código de salida?

Siempre debes establecer rdi antes de la llamada al sistema exit. Si lo olvidas, rdi contiene cualquier basura que haya quedado en el registro, y tu programa terminará con un código aleatorio.

challenge icon

Desafío

Escribe un programa completo en assembly que termine con el código de salida 2 (para indicar "file not found").

El código de impresión se proporciona. Solo necesitas añadir el syscall de salida.

Pruébalo tú mismo

section .data
    msg db 'Backup complete', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    ; Imprime el mensaje (proporcionado por el test harness)
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    ; El código del estudiante va aquí
    %include "solution.asm"
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Assembly