Итоги: корректное завершение
Часть раздела Основы путешествия по Assembly на Coddy — урок 34 из 45.
Вы узнали о системных вызовах (syscalls), системном вызове exit и кодах завершения. Теперь вы объедините всё это вместе, чтобы написать свою первую полную рабочую программу.
Полная программа требует:
| Компонент | Что он делает |
|---|---|
section .text | Место, где находится ваш код |
global _start | Сообщает компоновщику (linker), где начинается программа |
_start: | Метка, с которой начинается выполнение |
| Системный вызов Exit | Корректно завершает программу |
Что делает программу корректной:
Ваша программа должна содержать всё вышеперечисленное. Системный вызов exit использует mov rax, 60, устанавливает rdi в значение кода завершения и вызывает syscall.
Почему это важно:
Вы перешли от написания отдельных инструкций к написанию полноценных программ. Каждая программа, которую вы напишете с этого момента, будет следовать этой же структуре.
Задание
Напишите полную программу на ассемблере, которая завершается с кодом выхода 0 (успех). Используйте стандартную структуру: section .text, global _start, _start: и системный вызов exit.
Попробуйте сами
; TODO: Напишите полную программу, которая завершается с кодом выхода 0
; Используйте section .text, global _start, _start: и системный вызов exit
Все уроки раздела Основы
1Машина
Что такое CPUПамятьРегистры против памятиКак работают инструкцииПаттерн двух файловАрхитектура x86-642Системы счисления
Почему двоичная система?Двоичные числаИз десятичной в двоичнуюПочему шестнадцатеричная система?Из шестнадцатеричной в десятичнуюИз десятичной в шестнадцатеричнуюASCII и Hex5Системный вызов Exit
Что такое системный вызов?Системный вызов Exit (60)Коды завершенияИтоги: корректное завершение