- ; Instruction de compilation :
- ; NASM -f elf hello_world.asm
- ; ld -o hello_world hello_world.o
-
- segment .data ; variables initialisées constantes
- buflen: db 1024 ; taille du buffer
- segment .bss
- buf: resb 1024 ; buffer
- segment .text ; équivalent de main() mais c'est pas une fonction
- global _start
-
- _start: ; programme en lui même
-
- mov eax,3 ;syscall 3 => read
- mov ebx,0 ; 0 => lit le clavier
- mov ecx,buf ;dans quoi on stock
- mov edx,buflen ;taille du buffer
- int 80h ;on execute en appelant la syscall
- mov eax,4 ;syscall 4 => write
- mov ebx,1 ;1 => STDOUT
- mov ecx,buf ; ecrire quoi ? buf
- mov edx,buflen ;taille
- int 80h ;appel de syscall
- mov eax,1 ; 1 => exit
- mov ebx,0 ; 0 code de sortie
- int 80h ;fin ^^
; Instruction de compilation :
; NASM -f elf hello_world.asm
; ld -o hello_world hello_world.o
segment .data ; variables initialisées constantes
buflen: db 1024 ; taille du buffer
segment .bss
buf: resb 1024 ; buffer
segment .text ; équivalent de main() mais c'est pas une fonction
global _start
_start: ; programme en lui même
mov eax,3 ;syscall 3 => read
mov ebx,0 ; 0 => lit le clavier
mov ecx,buf ;dans quoi on stock
mov edx,buflen ;taille du buffer
int 80h ;on execute en appelant la syscall
mov eax,4 ;syscall 4 => write
mov ebx,1 ;1 => STDOUT
mov ecx,buf ; ecrire quoi ? buf
mov edx,buflen ;taille
int 80h ;appel de syscall
mov eax,1 ; 1 => exit
mov ebx,0 ; 0 code de sortie
int 80h ;fin ^^