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 seu programa é encerrado, ele envia um pequeno número de volta ao 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:

Os scripts usam códigos de saída para verificar se um programa foi executado com sucesso. Por exemplo, um script de Backup pode continuar somente se o comando anterior tiver sido executado com sucesso.

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 somente se o anterior tiver sido concluído com 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
0Success: tudo funcionou
1-255Algo deu errado

Escolhendo códigos de erro:

Você pode usar qualquer número de 1 a 255. O significado de cada número 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 chamada de sistema de saída. Se esquecer, rdi conterá qualquer lixo que tenha sido deixado no registrador, e seu programa será encerrado com um código aleatório.

challenge icon

Desafio

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

O código de impressão é provided para você. Você só precisa adicionar o exit syscall.

Experimente você mesmo

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

section .text
    global _start

_start:
    ; Imprima 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

Pratique por conta própria: Playground de Assembly