Podsumowanie: prawidłowe zakończenie
Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 34 z 45.
Dowiedziałeś się o wywołaniach systemowych, wywołaniu systemowym kończącym program oraz kodach wyjścia. Teraz połączysz wszystko w całość, aby napisać swój pierwszy kompletny, działający program.
Kompletny program potrzebuje:
| Element | Co robi |
|---|---|
section .text | Miejsce, w którym umieszczasz kod |
global _start | Informuje linker, gdzie zaczyna się program |
_start: | Etykieta, od której rozpoczyna się wykonywanie |
| Wywołanie systemowe kończące program | Poprawnie kończy program |
Co sprawia, że program jest poprawny:
Twój program musi zawierać wszystkie powyższe elementy. Wywołanie systemowe kończące program używa mov rax, 60, ustawia rdi na kod wyjścia i wywołuje syscall.
Dlaczego to ważne:
Od pisania pojedynczych instrukcji przeszedłeś do pisania kompletnych programów. Każdy program, który od teraz napiszesz, będzie miał tę samą strukturę.
Wyzwanie
Napisz kompletny program w asemblerze, który kończy działanie z kodem wyjścia 0 (sukces). Użyj standardowej struktury: section .text, global _start, _start: i wywołania systemowego kończącego działanie.
Spróbuj swoich sił
; TODO: Napisz kompletny program, który kończy działanie z kodem wyjścia 0
; Użyj section .text, global _start, _start: oraz wywołania systemowego exit
Wszystkie lekcje w sekcji Podstawy
1Maszyna
Czym jest CPUPamięćRejestry a pamięćJak działają instrukcjeWzorzec dwóch plikówArchitektura x86-642Systemy liczbowe
Dlaczego system binarny?Liczby binarneZamiana z systemu dziesiętnego na binarnyDlaczego system szesnastkowy?Zamiana z systemu szesnastkowego na dziesiętnyZamiana z systemu dziesiętnego na szesnastkowyASCII i system szesnastkowy5Wywołanie systemowe zakończenia
Czym jest syscall?Wywołanie systemowe zakończenia (60)Kody zakończeniaPodsumowanie: prawidłowe zakończeniePoćwicz samodzielnie: Edytor online Assembly