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 des codes de sortie pour vérifier si un programme a réussi. Par exemple, un script de sauvegarde pourrait ne continuer que si la commande précédente a réussi.
Les codes de sortie aident également au débogage. Vous pouvez utiliser différents codes d'erreur pour différents problèmes.
Vous pouvez également 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 | Succès — tout a fonctionné |
| 1-255 | Quelque chose s'est mal passé |
Choix des codes d'erreur :
Vous pouvez utiliser n'importe quel nombre de 1 à 255. La signification de chaque nombre dépend de vous en tant que programmeur.
| Code de sortie | Ce que cela peut signifier |
|---|---|
| 1 | Erreur générale |
| 2 | Fichier d'entrée manquant |
| 3 | Permission refusée |
| 4 | Erreur réseau |
Que se passe-t-il si vous ne définissez pas de code de sortie ?
Vous devez toujours définir rdi avant l'appel système exit. Si vous oubliez, rdi contiendra n'importe quel résidu laissé dans le registre, et votre programme se terminera avec un code aléatoire.
Défi
Écrivez un programme complet en assembleur qui se termine avec le code de sortie 2 (pour signaler "file not found").
Le code d'impression vous est fourni. Vous devez seulement ajouter l'appel système exit.
Essayez vous-même
section .data
msg db 'Backup complete', 0x0a
msgLen equ $ - msg
section .text
global _start
_start:
; Afficher le message (fourni par le harnais 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-64