Пример базового ассемблерного кода в архитектуре x86

Вот пример базового ассемблерного кода в архитектуре 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.
  • После печати сообщения программа использует другой системный вызов для корректного выхода.