|
Trouver une ressource
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)
Informations & options pour cette discussion
|
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
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|