Re: [amusement] Petit Hello, World!

Page principale

Répondre à ce message
Auteur: Pierre Pronchery
Date:  
À: Guilde
Sujet: Re: [amusement] Petit Hello, World!
On Mon, 21 Apr 2003 00:31:13 +0200
Lucas Nussbaum <lucas@???> wrote:
> >     Créer un programme Hello, World!, le plus petit possible. Le
> >     programme doit afficher Hello, World! à l'écran quand il est
> >     appelé sans arguments. Il doit ensuite se terminer en renvoyant
> >     au shell un code de retour de zéro. Tout ça sous Linux,
> >     évidemment !
> $ wc -c hello
>     716 hello

Pas mal du tout, bonne idee.
Peut mieux faire? En C cela ne doit pas etre evident.
Aide par google, j'avoue, j'ai obtenu le fichier suivant:


;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax).
;Enter this into "hello.asm" then type:
;"nasm -f elf hello.asm"
;"ld hello.o -o hello"
;"./hello"

section .data            ;data section declaration
msg    db    'Hello, World!',0AH
len    equ    $-msg        ;string length


section .text            ;code section declaration
global  _start            ;entry point (start of execution)
_start:    mov    edx,len    ;string length
mov    ecx,msg        ;string start
mov    ebx,1        ;file handle: stdout
mov    eax,4        ;sys_write
int    80h        ;kernel system call


mov    ebx,0        ;return value
mov    eax,1        ;sys_exit
int    80h        ;kernel system call


"In Your Face" :p
khorben@pinge:~/Temp$ nasm -f elf test.asm 
khorben@pinge:~/Temp$ ld test.o -o test
khorben@pinge:~/Temp$ wc -c test
    873 test
khorben@pinge:~/Temp$ strip test
khorben@pinge:~/Temp$ wc -c test
    488 test
khorben@pinge:~/Temp$ ./test && echo ni\!
Hello, World!
ni!


New record!

--
Pierre