Menu
CoddyTech

退出码

本课属于 Coddy Assembly 学习旅程的“基础知识”单元。第 33 课,共 45 课。

程序退出时,会向操作系统返回一个小数字。这个数字称为退出代码或退出状态。

退出码为什么重要:

脚本使用退出码来检查程序是否成功。例如,备份脚本可能只有在上一个命令成功后才会继续运行。

退出码也有助于调试。你可以为不同的问题使用不同的错误码。

你还可以将多个程序串联起来,这样只有前一个程序成功运行后,下一个程序才会运行。Shell 会在运行下一个命令之前检查退出码。

退出代码的规则:

退出代码含义
0成功:一切正常
1-255出现了问题

选择错误代码:

你可以使用 1 到 255 之间的任意数字。每个数字代表什么,由你这个程序员决定。

退出代码你可能想表达的意思
1一般错误
2缺少输入文件
3权限被拒绝
4网络错误

 

如果你不设置退出代码,会发生什么?

你必须始终在退出系统调用前设置 rdi。如果忘记了,rdi 中就会保留寄存器里之前的随机值,程序会以随机代码退出。

challenge icon

挑战

编写一个完整的汇编程序,以退出代码 2 退出(表示 "file not found")。

打印代码已为你提供。你只需要添加退出系统调用。

亲手试试

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

section .text
    global _start

_start:
    ; 打印消息(由测试框架提供)
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    ; 在这里编写你的代码
    %include "solution.asm"
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Assembly 在线编辑器