Вот пример базового ассемблерного кода в архитектуре x86:
section .text
global _start
_start:
; Print a message
mov eax, 4
mov ebx, 1
mov ecx, message
mov edx, message_len
int 0x80
; Exit the program
mov eax, 1
xor ebx, ebx
int 0x80
section .data
message db 'Hello, World!', 0xa
message_len equ $ - message
Этот код демонстрирует простую ассемблерную программу, которая печатает «Hello, World!» на консоль. Он использует набор инструкций x86 и интерфейс системных вызовов Linux.
Объяснение:
- Код начинается с метки
_start, которая является точкой входа в программу. - Инструкции
movперемещают значения в регистры. В этом случае он устанавливает системный вызов для печати сообщения. - Инструкция
int 0x80запускает программное прерывание, которое передает управление ядру Linux. - После печати сообщения программа использует другой системный вызов для корректного выхода.