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 : nasm - mémoire read-only [ Archives / Forum general 80xxx ] (Funto66)

mardi 3 août 2004 à 19:49:33 | nasm - mémoire read-only

Funto66

Bonjour,
je suis en train d'écrire des tutoriaux pour le site Coder-Studio (http://www.coder-studio.com/?page=tutoriaux) mais pour la création du tutorial 3 je me heurte à un problème.

Quand je compile, j'utilise une mini-librairie d'I/O que j'ai programmée en C et ASM. Je compile comme ça (ld est le linker de MinGW (Dev-C++), et gcc est le compilateur du même nom) :

gcc -c StdLib.c
nasm -fwin32 mon_prog.asm -o mon_prog.o
ld StdLib.o mon_prog.o libkernel32.a -o mon_prog.exe -nostdlib --entry=__start

Ce qui me permet d'utiliser ma lib (j'utilise un script, assemble_io.bat, vous pouvez récupérer le tout à http://www.coder-studio.com/tutoriaux/asm/asm_1.zip).

Bon, le problème maintenant :

Le code suivant ne plante à l'exécution :

section data use32 class=data
choix dd 5

section code use32 class=code
global __start

__start:
mov [choix], eax
ret

Si en revanche, je fais un mov eax, [choix], ça marche.

Si je compile le même code au format obj, ça fonctionne (mais je ne sais pas utiliser ce format avec ma lib :( ).

Je suppose donc que [choix] est en mémoire read-only :(

Donc, ma question : comment est-ce que je peux faire pour pouvoir écrire sur cette **** de variable globale [choix] ???

J'espère ne pas avoir été trop long, merci d'avances pr vos réponses.


Patience et longueur de temps font plus que force ni que rage....

mardi 3 août 2004 à 22:22:30 | Re : nasm - mémoire read-only

AlexMAN

Membre Club
Je vais ptet dire une betise, mais sait on jamais !
Si tu enlevais les crochets : mov choix, eax !?

mardi 3 août 2004 à 22:22:35 | Re : nasm - mémoire read-only

Funto66

Réponse acceptée !
Oups, ben ne vous dérangez pas, j'ai réussi à résoudre mon problème, en remplaçant les directives section par des section .text et section .data
Merci qd même ^^

Patience et longueur de temps font plus que force ni que rage....

mardi 3 août 2004 à 22:25:01 | Re : nasm - mémoire read-only

AlexMAN

Membre Club
Ah alors tu pourrais m'expliker pkoi il fallait les crochets ?

mardi 3 août 2004 à 22:25:46 | Re : nasm - mémoire read-only

Funto66

AlexMAN >> "choix" est un label, NASM le remplace donc à l'exécution par un nombre constant. Ce nobrem indique l'adresse où se trouve ma donnée, et en faisant [choix] je désigne donc la donnée elle-même.
Enfin, je ne suis pas sûr qd même que "choix" soit un nombre constant; avec les instructions JMP les labels sont remplacés par des nombres qui correspondent à combien ajouter à EIP pour atteindre l'instruction souhaitée; je sais pas si c'est pareil avec les datas, il me semble que non, mais si qq1 a la réponse, tant qu'à faire... ^^

Patience et longueur de temps font plus que force ni que rage....

mardi 3 août 2004 à 22:31:10 | Re : nasm - mémoire read-only

AlexMAN

Membre Club
ok ben jte remercie Funto

++

dimanche 8 août 2004 à 22:20:10 | Re : nasm - mémoire read-only

vecchio56

Administrateur CodeS-SourceS
AlexMAN> fais pas ca avec MASM

dimanche 8 août 2004 à 22:23:22 | Re : nasm - mémoire read-only

AlexMAN

Membre Club
ne pas faire mov [choix], eax ?

dimanche 8 août 2004 à 22:26:08 | Re : nasm - mémoire read-only

vecchio56

Administrateur CodeS-SourceS
bah oui, enfin ce n'est pas la peine de mettre les crochets

dimanche 8 août 2004 à 22:37:06 | Re : nasm - mémoire read-only

AlexMAN

Membre Club
j'ai tjrs fait sans les crochets.



Cette discussion est classé dans : code, prog, choix, asm, nasm


Répondre à ce message

Sujets en rapport avec ce message

Newbee needs help !! ->pb de choix [ par ddevnull ] Je suis dans la phase de choix de l'assembleur que je vais utiliser et j'hésite énormément entre nasm,tasm et masm.d'un point de vue performances il p ASM old-style / ASM ancienne méthode [ par TehWan ] Salut, j'aimerais bien coder en assembly de l'ancienne façon, c'est-à-dire sans aucune procédures, simplement des "labels". (excusez mes anglicismes, (Debutant en ASM) (MASM) pointeur sur une structure [ par Otaku ] Salut, voila mon pb, j'aimerai créer une fonction en asm qui reçoit un pointeur sur un élément de type structure, jusque-là pas de pbmais comment modi Compilateur C/C++ [ par Bombela ] Salut !Quand on utilise un compilateur C/C++, il est livré avec ses bibliothèque. Maintenant, imaginez que je fasse un os (imaginez seulement), les ro algo pour jeu de shoot en asm [ par cable ] Bonjourje suis un jeune débutant en programmation en assembleur et je cherche l'algo (voir le code source) d'un jeu de shoot 'em up en scroling horizo Problème avec le org sous nasm [ par dodo76 ] je développe un prog sous nasm pour le mettre ensuite dans une eprom. Je veux que le programme commence à l'adresse 0XFFF0. En début de prog, je mets [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 Utiliser une fonction ASM compilée (sous MASM) sous Dev-C++ ? [ par skirby ] Bonjour, j'essaye désespérément d'intégrer une fonction assembleur (compilée sous MASM) dans Dev-C++ (v4.9.9.2) Voici mon code C : /********* débutant en asm [ par eax ] salutje débute en asm (avec nasm) et j'arrive pas à assembler mon premier code lolsection .datamsg db 'Hello world$'section .codedebut: lea dx,msg mov appeller du C en asm [ par S2R ] Bonjour, je voudrait savoir comment utiliser un code écrit en C dans un code assembleur.


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



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 : 0,328 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é.