Problem dans le segment .data (NASM)

cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 30 déc. 2002 à 01:02
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 31 déc. 2002 à 01:44
J'ai commencé aujourd'hui la programmation en Assembleur
Mon premier programme est classique, le "Hello world!".
J'utilise NASM sous Linux (Red Hat 7.3, kernel 2.2 si ca pe être utile)
Le problème est que j'ai créer 3 "variable msg1, msg2, msg3 dans le segment .data
et je souhaite n'afficher que la première à l'écran mais les trois s'affiche.
Merci de m'aider afin que je n'affiche qu'une seule variable.

segment .data
msg1 db 'Hello, world!','$',0,0xa
msg2 db 'Salut à tous!','$',0,0xa
msg3 db 'Ca va bien!','$',0,0xa
len equ $ - msg1

segment .dss

segment .text
global _start

_start:
mov eax,4
mov edx,[len]
mov dword ecx,[msg1]
int 0x80
mov eax,1
int 0x80

3 réponses

cs_Nemesis Messages postés 22 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 18 avril 2003
30 déc. 2002 à 14:35
Je connais pas trop la programmation sous linux, mais ça doit pas être très différent de windows. La chaine doit se terminer par le signe $.
voilà ton programme (a toi de voir si il marche):

segment .data
msg1 db 'Hello, world!','$'
msg2 db 'Salut à tous!','$'
msg3 db 'Ca va bien!','$'
len equ $ - msg1

segment .dss

segment .text
global _start

_start:
mov eax,4
mov edx,[len]
mov dword ecx,[msg1]
int 0x80
mov eax,1
int 0x80
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
30 déc. 2002 à 16:33
Tu as peut-être un problème de taille (celle que tu passes à l'intéruption dans EDX). Ton "len" englobe les trois chaines, tu peux essayer pour la première chaine par exemple :

// ....
msg1 db 'Hello, world!','$',0,0xa
len1 equ $ - msg1
// ...
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
31 déc. 2002 à 01:44
Merci, j'ai résolu mon problème, c'était bien un problème de taille.
0