; ----------------------------------------------------------------- ; NASM Hello World à l'aide d'appels systèmes ; ; Compilation (=> hello.o) ; nasm -f elf hello.asm ; ; Création de l'exécutable (=> a.out) ; ld hello.o ; ; ----------------------------------------------------------------- ; ----------------------------------------------------------------- ; segment des données initialisées ; ----------------------------------------------------------------- section .data msg db "Hello, world!",0xa ; le message (chaîne de caractères) len equ $ - msg ; longueur de la chaîne ; ----------------------------------------------------------------- ; segment de code ; ----------------------------------------------------------------- section .text global _start ; export du point d'entrée du programme (pour le loader) _start: ; point d'entrée du programme mov edx, len ; longueur de la chaîne à afficher mov ecx, msg ; pointeur sur la chaîne mov ebx, 1 ; flux dans lequel écrire (1=stdout) mov eax, 4 ; n° de l'appel système (4=sys_write) int 0x80 ; appel système mov ebx, 0 ; code de retour mov eax, 1 ; n° de la fonction à appeler (1=sys_exit) int 0x80 ; appel système