Menu
Coddy logo textTech

Коды завершения

Часть раздела Основы путешествия по Assembly на Coddy. Урок 33 из 45.

Когда ваша программа завершается, она отправляет операционной системе небольшое число. Это число называется кодом выхода или статусом выхода.

Почему коды выхода важны:

Скрипты используют коды выхода, чтобы проверить, успешно ли завершилась программа. Например, скрипт резервного копирования может продолжить работу, только если предыдущая команда завершилась успешно.

Коды завершения также помогают при отладке. Можно использовать разные коды ошибок для разных проблем.

Можно также объединять программы в цепочку, чтобы одна программа запускалась только в том случае, если предыдущая завершилась успешно. Оболочка проверяет код завершения перед запуском следующей команды.

Правила кодов выхода:

Код выходаЗначение
0Success: всё работает
1-255Что-то пошло не так

Выбор кодов ошибок:

Вы можете использовать любое число от 1 до 255. Что означает каждое число, решать вам как программисту.

Код выходаЧто это может означать
1Общая ошибка
2Отсутствует входной файл
3Доступ запрещён
4Ошибка сети

 

Что произойдёт, если не установить код выхода?

Вы всегда должны устанавливать rdi перед системным вызовом exit. Если вы забудете это сделать, rdi будет содержать какой-то мусор, оставшийся в регистре, и ваша программа завершится со случайным кодом.

challenge icon

Задание

Напишите полную программу на assembly, которая завершается с кодом выхода 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