Menu
CoddyTech

Kody zakończenia

Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 33 z 45.

Gdy program kończy działanie, wysyła niewielką liczbę z powrotem do systemu operacyjnego. Ta liczba nazywa się kodem wyjścia lub statusem wyjścia.

Dlaczego kody wyjścia są ważne:

Skrypty używają kodów wyjścia, aby sprawdzić, czy program zakończył się powodzeniem. Na przykład skrypt tworzący kopię zapasową może kontynuować działanie tylko wtedy, gdy poprzednie polecenie zakończyło się powodzeniem.

Kody zakończenia pomagają również w debugowaniu. Możesz używać różnych kodów błędów dla różnych problemów.

Możesz też łączyć programy w łańcuch, tak aby jeden program uruchamiał się tylko wtedy, gdy poprzedni zakończył się powodzeniem. Powłoka sprawdza kod zakończenia przed uruchomieniem następnego polecenia.

Zasady kodów wyjścia:

Kod wyjściaZnaczenie
0Sukces: wszystko działało
1-255Coś poszło nie tak

Wybieranie kodów błędów:

Możesz użyć dowolnej liczby od 1 do 255. To ty jako programista decydujesz, co oznacza każda liczba.

Kod wyjściaCo możesz mieć na myśli
1Błąd ogólny
2Brak pliku wejściowego
3Odmowa dostępu
4Błąd sieci

 

Co się stanie, jeśli nie ustawisz kodu zakończenia?

Musisz zawsze ustawić rdi przed wywołaniem systemowym kończącym program. Jeśli o tym zapomnisz, rdi będzie zawierać przypadkowe dane, które pozostały w rejestrze, a Twój program zakończy działanie z losowym kodem.

challenge icon

Wyzwanie

Napisz kompletny program w asemblerze, który kończy działanie z kodem wyjścia 2 (aby zasygnalizować „nie znaleziono pliku”).

Kod wypisujący komunikat jest już dostępny. Wystarczy dodać wywołanie systemowe kończące działanie.

Spróbuj swoich sił

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

section .text
    global _start

_start:
    ; Wypisz komunikat (dostarczony przez środowisko testowe)
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    ; Tutaj należy umieścić kod ucznia
    %include "solution.asm"
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Assembly