Первая программа

Минимальная ассемблерная программа выглядит следующим образом:

section .text
global main
main:
   ; вместо этого комментария здесь должен быть код
   ret

В программе содержится только функция main, которая ничего не делает.

Эталонная программа “Hello world!” имеет следующий вид:

extern io_print_string            ; (1)
                                  ; (2)
section .data                     ; (3)
   str: db `Hello, World!\n`, 0   ; (4)
                                  ; (5)
section .text                     ; (6)
                                  ; (7)
global main                       ; (8)
main:                             ; (9)
   MOV EAX, str                   ; (10)
   CALL io_print_string           ; (11)
   MOV EAX, 0                     ; (12)
   RET                            ; (13)

Замечание. “Ошибка новичков” написать в секции данных следующий код:

.data
   str db 'Hello, world!', 0

Ассемблер выдаст на такое сообщение об ошибке. Причина – существование ассемблерной инструкции с кодом str. При отсутствии двоеточия лексема рассматривается не как метка, а как идентификатор, который сопоставляется в первую очередь с опкодами ассемблерных команд.