Soyez le premier à donner votre avis sur cette source.
Snippet vu 13 269 fois - Téléchargée 30 fois
.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
26 juil. 2006 à 09:16
Thanks.
Bouba
25 juil. 2006 à 23:49
dune2.
25 juil. 2006 à 23:41
Dans l'appel système "write", les paramètres sont eax="appel système write" , ebx="le file descriptor (1 = stdout)", ecx="pointeur vers le buffer" et edx="taille du buffer".
C'est sur la taille du buffer pour la 2ème chaine que je ne suis pas d'accord. Pour éviter tout problème de calcul de taille de chaine, on peut laisser le compilateur effectuer le calcul à notre place. Pour celà, nous utiliserons la soustraction de label :
.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
dune2.
26 oct. 2003 à 23:52
Sinon, pour de la doc en asm tu trouveras tout ça sur le net facilement en faisant une recherche sur google, ou alors sur le super site du "Linux Documentation Project". En tout cas si tu trouves pas de doc en Français c'est u pe normal, de tout de façon les meilleurs docs sont en Anglais, alors ne t'entêtes pas a en chercher en français.
Voilà, bonne prog.
Bouba
24 oct. 2003 à 19:30
J'aurais deux petites questions:
1) Je n'arrive pas a complier ton code, il ne veut pas des chaines de caractères avec ' (il veut ") et les commentaire il veut pas de // mais un point-virgule.
Alors je voudrais savoir si tu a fait une erreur, où si je n'ai pas la même version de as que toi (j'ai GNU assembler version 2.13.90.0.18 (i586-mandrake-linux-gnu))
2) Plus important: Où peut-on trouver des documents sur la programmation en asm sous linux?
Merci d'avance
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.