Menu
Coddy logo textTech

終了コード

CoddyのAssemblyジャーニー「基礎」セクションの一部 — レッスン 33/45。

プログラムが終了するとき、オペレーティングシステムに小さな数値を返します。この数値は、終了コードまたは終了ステータスと呼ばれます。

終了コードが重要な理由:

スクリプトは終了コードを使用して、プログラムが成功したかどうかを確認します。例えば、バックアップスクリプトは、前のコマンドが成功した場合にのみ続行されることがあります。

終了コードはデバッグにも役立ちます。問題ごとに異なるエラーコードを使用できます。

また、プログラムを連結して、前のプログラムが成功した場合にのみ次のプログラムが実行されるようにすることもできます。シェルは、次のコマンドを実行する前に終了コードを確認します。

終了コードのルール:

終了コード意味
0成功 — すべて正常に動作しました
1-255エラーが発生しました

エラーコードの選択:

1から255までの任意の数字を使用できます。それぞれの数字が何を意味するかは、プログラマーであるあなた次第です。

終了コード意味
1一般的なエラー
2入力ファイルが見つかりません
3アクセス拒否
4ネットワークエラー

 

終了コードを設定しないとどうなりますか?

exitシステムコールの前に、必ずrdiを設定しなければなりません。忘れてしまうと、rdiにはレジスタに残っていたゴミが含まれることになり、プログラムはランダムな終了コードで終了してしまいます。

challenge icon

チャレンジ

終了コード 2("file not found" を示すため)で終了する、完全なアセンブリプログラムを記述してください。

出力用のコードはあらかじめ用意されています。exit システムコールを追加するだけです。

自分で試してみよう

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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン