C'est juste pour montrer comment faire un simple "Hello World" avec AS.
Comme ceci, le code montre la syntaxe AT&T. Une petite modification a été apportée pour calculer la taille des chaînes automatiquement, merci à _DUNE2_ pour l'apport de cette ajout !
Source / Exemple :
.section .text
.global _start
_start:
movl $4, %eax
movl $1, %ebx
movl $chaine1, %ecx
movl $(chaine2-chaine1), %edx ; calcul de la taille automatique
int $0x80
movl $4,%eax
movl $1,%ebx
movl $chaine2,%ecx
movl $(chaine3-chaine2),%edx ; calcul de la taille automatique
int $0x80
movl $1, %eax
int $0x80
.section .data ; section ki sert a déclarer des variables initialisés
chaine1: .string "Voici une première chaine\n"
chaine2: .string "Et en voici une seconde\n"
chaine3:
.section .bss
nbr3: .long ; sert a rien, c juste pour montrer que ce segment sert a mettre des varibles non initialisés
Conclusion :
Bon, c'est simple, on utilise l'appel system "write" pour afficher deux chaines.
On fait appel à l'interruption 0x80, c'est le kernel.
Voila, pour compiler on fait:
as -o prog.o prog.asm
ld -s -o prog prog.o
Voila
Bonne Prog
Bouba
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.