Menu
Coddy logo textTech

終了コード

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

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

exit コードが重要な理由:

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

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

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

exit コードのルール:

終了コード意味
0Success:すべて正常に動作しました
1-255何か問題が発生しました

エラーコードの選択:

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

終了コード考えられる意味
1一般的なエラー
2入力ファイルがありません
3アクセスが拒否されました
4ネットワークエラー

 

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

exit syscall の前に、必ず rdi を設定する必要があります。忘れると、rdi にはレジスタに残っていた不定の値が含まれ、プログラムはランダムなコードで終了します。

challenge icon

チャレンジ

終了コード 2(「file not found」を通知する)で終了する完全なアセンブリプログラムを書いてください。

プリントコードは用意されています。exit syscall を追加するだけです。

自分で試してみよう

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プレイグラウンド