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