Codes de sortie
Fait partie de la section Fondamentaux du Journey Assembly de Coddy. Leçon 33 sur 45.
Lorsque votre programme se termine, il renvoie un petit nombre au système d’exploitation. Ce nombre est appelé le code de sortie ou le statut de sortie.
Pourquoi les codes de sortie sont importants :
Les scripts utilisent les codes de sortie pour vérifier si un programme a réussi. Par exemple, un script de sauvegarde peut ne continuer que si la commande précédente a réussi.
Les codes de sortie aident également au débogage. Tu peux utiliser différents codes d’erreur pour différents problèmes.
Tu peux aussi enchaîner des programmes afin qu’un programme ne s’exécute que si le précédent a réussi. Le shell vérifie le code de sortie avant d’exécuter la commande suivante.
Les règles des codes de sortie :
| Code de sortie | Signification |
|---|---|
| 0 | Réussite : tout a fonctionné |
| 1-255 | Une erreur s’est produite |
Choisir des codes d’erreur :
Tu peux utiliser n’importe quel nombre de 1 à 255. C’est à toi, en tant que programmeur, de décider de la signification de chaque nombre.
| Code de sortie | Ce que vous voulez peut-être dire |
|---|---|
| 1 | Erreur générale |
| 2 | Fichier d’entrée manquant |
| 3 | Autorisation refusée |
| 4 | Erreur réseau |
Que se passe-t-il si vous ne définissez pas de code de sortie ?
Tu dois toujours définir rdi avant l’appel système de sortie. Si tu oublies, rdi contient les données indéfinies qui restaient dans le registre, et ton programme se terminera avec un code aléatoire.
Défi
Écris un programme assembleur complet qui se termine avec le code de sortie 2 (pour signaler « file not found »).
Le code d’affichage est fourni. Tu dois seulement ajouter l’appel système de sortie.
Essayez vous-même
section .data
msg db 'Backup complete', 0x0a
msgLen equ $ - msg
section .text
global _start
_start:
; Afficher le message (fourni par l’environnement de test)
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, msgLen
syscall
; Le code de l’étudiant va ici
%include "solution.asm"Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
1La Machine
Qu'est-ce qu'un CPULa mémoireRegistres vs MémoireFonctionnement des instructionsLe modèle à deux fichiersL'architecture x86-64Entraînez-vous par vous-même : Playground Assembly