Menu
Coddy logo textTech

Códigos de Saída

Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 33 de 45.

Quando o seu programa termina, ele envia um pequeno número de volta para o sistema operacional. Esse número é chamado de código de saída ou status de saída.

Por que os códigos de saída são importantes:

Scripts usam códigos de saída para verificar se um programa foi bem-sucedido. Por exemplo, um script de backup pode continuar apenas se o comando anterior tiver sido bem-sucedido.

Códigos de saída também ajudam na depuração. Você pode usar códigos de erro diferentes para problemas diferentes.

Você também pode encadear programas para que um programa seja executado apenas se o anterior tiver tido sucesso. O shell verifica o código de saída antes de executar o próximo comando.

As regras dos códigos de saída:

Código de saídaSignificado
0Sucesso — tudo funcionou
1-255Algo deu errado

Escolhendo códigos de erro:

Você pode usar qualquer número de 1 a 255. O que cada número significa depende de você como programador.

Código de saídaO que você pode querer dizer
1Erro geral
2Arquivo de entrada ausente
3Permissão negada
4Erro de rede

 

O que acontece se você não definir um código de saída?

Você deve sempre definir rdi antes da syscall exit. Se você esquecer, rdi conterá qualquer lixo que tenha restado no registrador, e seu programa sairá com um código aleatório.

challenge icon

Desafio

Escreva um programa assembly completo que saia com o código de saída 2 (para sinalizar "file not found").

O código de impressão é fornecido para você. Você só precisa adicionar a syscall de saída.

Experimente você mesmo

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

section .text
    global _start

_start:
    ; Imprime a mensagem (fornecida pelo test harness)
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    ; O código do aluno vai aqui
    %include "solution.asm"
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos