Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : problem dans le segment .data (NASM) [ Archives / Aide a la programmation Unix ] (bouba)

lundi 30 décembre 2002 à 01:02:15 | problem dans le segment .data (NASM)

bouba

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

lundi 30 décembre 2002 à 14:35:39 | Re : problem dans le segment .data (NASM)

Nemesis

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



-------------------------------
Réponse au message :
-------------------------------

> 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
>

lundi 30 décembre 2002 à 16:33:58 | Re : problem dans le segment .data (NASM)

Kaid


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
// ...


-------------------------------
Réponse au message :
-------------------------------

> 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
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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
> >
>

mardi 31 décembre 2002 à 01:44:39 | Re : problem dans le segment .data (NASM)

bouba

Merci, j'ai résolu mon problème, c'était bien un problème de taille.



Cette discussion est classé dans : data, mov, nasm, segment, msg1


Répondre à ce message

Sujets en rapport avec ce message

SEGMENT SOUS NASM [ par Berty2000 ] Salut.je debute l'assembleur.Dans un prog EXE,comment recuperer la valeur du segment data dans lequelse trouve mot.pour l'offset, il suffit de faire m Probleme avec NASM et ALINK [ par epineurien ] Bonjour ! Voilà ma question : Je commence à utiliser NASM mais j'ai quelques problemes avec le linker ; Alink. Avec ce code (issu de la doc. de NASM Aide sur le protocole i2c en assembleur pour une puce DS1621 [ par mortfeus ] Bonjour,J'ai un projet a réaliser qui consiste à travailler avec une puce DS1621, un capteur de température, via une carte atmel AT89C2051 qui sera en MOV CX,ES:[DI] ??? [ par Arnaud16022 ] hello tout le monde question de newbie, je comprends pas cette command: MOV CX,ES:[DI] bon le mve ca va, le CX itou, mais apres ca coince... plus géné Simple addition [ par nostra ] Big totoJe n'arrive pas à afficher les valeurs A (=3) et B(=2) ainsi que le résultat de l'addition. Merci de trouver le ou les erreurs commises.;----- Addition pourtant simple [ par nostra ] Big totoJe n'arrive pas à afficher le résultat de l'addition malgré les remarques de Nemesis. Merci de trouver le ou les erreurs commises. ;---------- [NASM] émulateur NES [ par sirozz ] Bonjour à tous,Je me lance dans la programmation d'un émulateur de console NES en ASM avec NASM. J'avais déja fait un émulateur NES en VB il y a quelq Graphique [ par RM50Man ] Bonjour a tous!!!!Je veux tracer une ligne mais ca ne marche pas, je passe les parametre par la pile,et ensuite ds la fonction principale, je remplis Une mémoire "read" [ par msteve ] Bonsoir, Je suis débutant et j'ai recopié un programme test. Je parviens à l'assembler, puis à créer un .exe ; quend je lance l'exe j'obtiens la boîte Bonjour [ par red4ever ] J'aurai aimer savoir comment permettre a l'utilisateur d'entrer une chaine de caractere,la ranger dans bx et ensuite l'afficher a l'ecran??J'ai beau e


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,044 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.