IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Comment utiliser MASM32 ?


Sujet :

x86 32-bits / 64-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Comment utiliser MASM32 ?
    Bonjour,

    Très débutant (en ASM, mais excellente maîtrise vb6 et bonne maîtrise vbNet), parlant seulement français, je trouve des exemples dans les tutoriels x86/32, mais y en a pas un qui fonctionne.

    Alors on m'a conseillé in fine le MASM32 (anglais), certes, mais il faudrait commencer par m'expliquer comment ça marche, et ça nul quasiement n'en parle, à savoir : Je crée un fichier "moi.asm", ok, mais ensuite je l'enregistre dans quoi, où (install par défaut sur C), et avant, faut-il créer un projet, comment ? Et après, dans l'éditeur (si ça se nomme ainsi), il y a "assembler", "linker", "compiler", "run" ... Et moi je fais quoi là dedans ?
    Vous comprenez que si je n'ai pas quelqu'un derrière moi c'est inexploitable !

    Ça permet de dire que l'assembleur est difficile car personne ne veut s'investir pour l'expliquer, je comprends désormais mieux la technique...

    Et dans tout ça, l'assembleur doit me générer quel fichier, à quel moment, qui devraient être où et qui servent à quoi ?
    Eh ben tout ça, ça passe à l'As dans les tutoriels (les pseudo-meilleurs dise : mettre le truc sur 8, puis le machin sur "b", et le bidule sur "ok") ... mais on ne comprend même pas ce que l'on fait. D'autre en dernier disent "mais non, fais pas comme ça, fait un BAT comme ceci", à croire que l'éditeur ne sert à rien ...

    Bref, c'est la cacophonie, si on ne connait pas la base de l'utilisation de l'éditeur et de ses fichiers, ce n'est pas la peine de faire un tutoriel, nul qui ne s'y connaisse ne pourra l'utiliser ...

    Imaginez, connaissant très bien vb6, c'est comme si un néophyte me demandait comment mettre le feuille d'une certaines couleur, alors moi je lui répondrais comme dans les tutoriels ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form1.BackColor = vbRed
    La belle affaire, que voulez vous que le pauve fasse de ça, faut avant lui expliquer comment appeler vb6 (supposé installé), lui dire d'ouvrir et d'enregistrer un projet, puis lui dire d'ouvrir une form, puis lui dire expliquer comment accéder au code, puis lui dire comment générer la procédure Load, puis lui dire enfin d'y mettre son instruction, et ensuite d'enregistrer le tout, puis de lancer, puis de compiler, puis lui expliquer les fichiers et répertoires qui vont être générés et à quoi ils servent ...
    C'est seulement à ce prix qu'il pourra s'en sortir, sinon ce n'est même pas la peine de faire un tutoriel de code totalement inutile, car la première des choses à apprendre c'est l'utilisation de léditeur, de ses fichiers, etc... comment écrire un programme en somme en manipulant l'éditeur, or rien de ça dans les tutoriels, ou si peu

    Bon, je pourrais en posant 50 questions ici peut être y arriver, mais bon, généralement il faut un "mentor" disponible au début, qui à l'aided'échanges d'emails (tous les jours et non toutes les semaines), guide jusqu'à ce que l'éditeur dans ses phases simple soit maîtrisé, et c'est seulement après qu'on passe au code...

    Alors s'il y a un volontaire, merci d'avance ?

    Cordialement.

    Joe.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 193
    Par défaut
    L'abondance des questions justifie l'existence des IDE pour y répondre.
    Mais pour un point de départ,je veux bien te guider dans la prise en main.
    Je suis assez pour la formation sur le tas,donc:
    un exemple suffisament simple pour éviter des questions surabondantes est içi:
    \masm32\examples\exampl01\minimum
    Il y a un batch de fourni.

  3. #3
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Réponse à ToutEnAsm
    Citation Envoyé par ToutEnMasm Voir le message
    Mais pour un point de départ,je veux bien te guider dans la prise en main.
    Je suis assez pour la formation sur le tas,donc:
    Bonjour,

    Merci, en fait on ne peut pas passer par ce forum, on va rapidement se faire rappeler à l'odre (pour discussion personnel, "j'ai l'habitude"), si tu le veux bien il faut passer par mail, le mien est xxxxx arobase xxx point xxx, merci de me communiquer le tien, je commencerai pas demander comment on commence avec l'interface ...

    A bientôt, cordialement.

    Joe.

  4. #4
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut A ToutEnMASM et autres
    Bonjour,

    Alors je peux toujours ici poser mes questions :

    Après voir installé MASM32 Editor (donc c'est un éditeur de code entre autre), il se trouve à
    c:\masm32\
    Je fais grâce du nombre de répertoires, dll et exécutables ...
    Et j'ai crée un dossier _JOE afin d'y mettre mes expérimentations : "un.asm", "deux.asm" ... in futurum ...

    Bon, ensuite on lance le MASM par Qeditor, ça affiche l'interface de codage et commandes. Jusqu'à là chat va.
    C'est QuickEditor 4.0 - 2008

    Question 1
    Je présume que quand on lance une commande via qEditor, il sait retrouver ses petits dans son répertoire tout seul n'est-ce pas ?

    Question 2
    Si je veux créer un programme simple qui affiche la traditionnelle MsgBox, je dois faire quoi, je veux dire :

    -2.1-
    Dois-je déclarer un nouveau projet, qui va avoir qu'elle extension et va se loger où, comment faire ?

    -2.2-
    Si je n'ai pas à créer de projet, mais simplement un programme lato sensu, je présume qu'il est mieux que je l'englobe dans un répertoire de mon cru, non ?

    -2.3-
    Ensuite, sans faire de code, mon fichier code (fichier texte en fait), quand je vais l'enregistrer sous, où dois-je le mettre (dans son dossier créé par moi je pésume), et quelle extension aura-t-il (.asm) ?

    Quelques précisons en rapport à rajouter ?

    C'est tout pour le moment, ensuite on passera à l'écriture du code, puis à l'enregistrement et à la génération de tous les fichier, pour ensuite achever sur le lancement, ce sera déjà bien, merci, à bientôt, cordiallement.


    Joe.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Bonjour,

    Citation Envoyé par Ehjoe Voir le message
    Très débutant (en ASM, mais excellente maîtrise vb6 et bonne maîtrise vbNet), parlant seulement français, je trouve des exemples dans les tutoriels x86/32, mais y en a pas un qui fonctionne.
    Tout d'abord, bravo de t'y investir sérieusement. Ensuite, il est de fait que certains exemples doivent être assez vieux.

    Par contre, Visual Basic, a fortiori sous .net, est très éloigné du fonctionnement réel de la machine. C'est communément le langage C qui est considéré comme le plus proche, même si lui aussi reste très différent de l'assembleur pur.

    Ensuite, l'âge d'or des programmes en assembleur se situait dans les années 1980 et début 1990, là où l'on trouvait encore différentes architectures (pas uniquement du PC et quelques Mac), mais dont la puissance était bien moindre et les O.S. plus permissifs. Aujourd'hui, c'est toujours possible, naturellement, de développer en assembleur, et heureusement. Par contre, les choses qui étaient directement visibles à l'époque le sont beaucoup moins aujourd'hui et il faut parfois faire preuve d'un peu d'imagination lorsque l'on refait le chemin « à l'envers », c'est-à-dire lorsque l'on part des langages de haut niveau pour redescendre vers l'assembleur.

    Alors on m'a conseillé in fine le MASM32 (anglais), certes, mais il faudrait commencer par m'expliquer comment ça marche, et ça nul quasiement n'en parle, à savoir : Je crée un fichier "moi.asm", ok, mais ensuite je l'enregistre dans quoi, où (install par défaut sur C), et avant, faut-il créer un projet, comment ? Et après, dans l'éditeur (si ça se nomme ainsi), il y a "assembler", "linker", "compiler", "run" ... Et moi je fais quoi là dedans ?
    Le VB est pour ainsi dire toujours exploité à travers son I.D.E., ce qui donne une vision biaisée des choses. En fait, les langages sont censés être complètement indépendants des environnement à travers lesquels on les utilise.

    Tu peux utiliser l'éditeur de ton choix pour écrire ton programme, à commencer par le bloc-notes, sous Windows. Un bémol toutefois : n'utilise pas de traitement de texte pour le faire. Le fichier que tu écris doit être un fichier texte pur pour être lu par le compilo.

    Ensuite, tu appelles ton compilateur comme n'importe quelle autre application en lui passant en argument le fichier que tu as écrit. Il va le lire, et générer en sortie un fichier exécutable.

    Vous comprenez que si je n'ai pas quelqu'un derrière moi c'est inexploitable !
    C'est souvent le cas, et c'est vrai pour la plupart des langages et des systèmes d'exploitation. Mais dès que tu auras fait tes premiers pas, tu seras à même de continuer seul. Ne t'inquiètes pas.

    Bref, c'est la cacophonie, si on ne connait pas la base de l'utilisation de l'éditeur et de ses fichiers, ce n'est pas la peine de faire un tutoriel, nul qui ne s'y connaisse ne pourra l'utiliser ...
    Comme on l'a vu, il y a une frontière entre les environnements de développement et les langages proprement dits. Quand on en a pratiqué plusieurs, on s'y retrouve, mais quand on débute et qu'on n'a vu qu'un seul langage, il est difficile de faire la part des choses. L'ennui est que le VB est un langage très intégré. Développer un programme en VB en se passant de l'I.D.E. et en rédigeant tous les fichiers à la main demande d'être très expérimenté.

    Imaginez, connaissant très bien vb6, c'est comme si un néophyte me demandait comment mettre le feuille d'une certaines couleur, alors moi je lui répondrais comme dans les tutoriels ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form1.BackColor = vbRed
    La belle affaire, que voulez vous que le pauve fasse de ça, faut avant lui expliquer comment appeler vb6 (supposé installé), lui dire d'ouvrir et d'enregistrer un projet, puis lui dire d'ouvrir une form, puis lui dire expliquer comment accéder au code, puis lui dire comment générer la procédure Load, puis lui dire enfin d'y mettre son instruction, et ensuite d'enregistrer le tout, puis de lancer, puis de compiler, puis lui expliquer les fichiers et répertoires qui vont être générés et à quoi ils servent ...
    C'est seulement à ce prix qu'il pourra s'en sortir, sinon ce n'est même pas la peine de faire un tutoriel de code totalement inutile, car la première des choses à apprendre c'est l'utilisation de léditeur, de ses fichiers, etc... comment écrire un programme en somme en manipulant l'éditeur, or rien de ça dans les tutoriels, ou si peu
    Oui mais, pour autant, ta réponse reste légitime.

    Il faudrait pour bien faire un tutoriel assembleur pour les néophytes totaux en programmation, un tutoriel pour ceux qui viennent du C (nombreux), un tutoriel pour ceux qui ne connaissent que les technologies Microsoft, etc. Il arrive également qu'au bout d'un moment, ce ne soit plus un tutoriel mais un véritable cours, qu'il faille. Ça demande du travail et du talent pour les rédiger. C'est donc un bon livre qu'il te faut. Mais en assembleur, ils deviennent difficiles à trouver, en effet.

    Ensuite — et c'est fondamental — il n'y a pas un mais plusieurs assembleurs. Plus précisément, ce qui est nommé « assembleur », c'est en fait le langage d'un micro-processeur donné. Et ce micro-processeur n'est pas forcément lié, en soi, à la machine sur laquelle il est installé. Par exemple, on trouvait des 68000 dans les Mac, dans les Atari ST, dans les Amiga, et dans un certain nombre d'autres machines très différentes. Ceci implique au moins trois choses :

    • La liste des instructions va être propre à chaque micro-processeur. Un programme en assembleur va donc pouvoir fonctionner sur toutes les machines équipées du même processeur MAIS pas forcément donner de bons résultats puisque ça dépend de l'environnement dans lequel ton programme tourne ;
    • Chaque micro-processeur va avoir un jeu d'instruction similaire aux autres, mais qui lui reste propre. C'est comme changer de voiture, ou d'avion si tu pilotes un peu. Ils fonctionnent tous de la même façon, mais il faut quand même se qualifier sur chacun d'eux pour pouvoir les utiliser ;
    • Les instructions à ta disposition seront celles d'un composant électronique, a priori indépendant de la machine sur laquelle il fonctionne, et qui ne communique avec son entourage que via des bus d'adresses et de données, c'est-à-dire un ensemble de lignes électriques parallèles qui permettent de véhiculer une donnée binaire dans un sens ou dans l'autre (lecture ou écriture).


    Ça veut dire que les instructions en question seront des opérations de manipulation de données, mais rien de pratique comme « PRINT », « COLOR », ou autre. Ça, tu le feras en appelant les routines ton système d'exploitation.

    D'autre part, les procédures à suivre données dans un tutoriel peuvent être valables sur un système d'exploitation mais pas pour un autre. Par exemple, je travaille sur PC, mais sous Linux. Windows n'est plus du tout installé sur ma machine. Donc, exit les « lecteurs C » et autres bizarreries. Pour autant, j'ai quand même plusieurs assembleurs installés.

    Bon, je pourrais en posant 50 questions ici peut être y arriver, mais bon, généralement il faut un "mentor" disponible au début, qui à l'aided'échanges d'emails (tous les jours et non toutes les semaines), guide jusqu'à ce que l'éditeur dans ses phases simple soit maîtrisé, et c'est seulement après qu'on passe au code...
    Tu peux commencer par cette discussion sur le langage C mais dont les objectifs sont sensiblement les mêmes. Un compilateur C fonctionne pratiquement de la même façon qu'un compilateur assembleur : http://www.developpez.net/forums/d98...uter/jungle-c/

    Tu peux ensuite poser tes questions successives sur la présente discussion.
    Bon courage.

  6. #6
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Réponse à Obsidian
    Bonjour,

    Merci de ta réponse ...

    En fait je n'ai pas tout dit, j'ai commencé sur OS CPM et prologuE (avec un E, de Bull-Prologue) en basic avant Dos, j'avais déjà du multi-postes (pas de serveur) et multi-imprimantes ...
    Puis je suis passé une année en TC3++, puis j'ai fait un satge TASM5 de 5 jours ...
    Et enfin je suis passé à VB5, puis 6 depuis Windows 95, et depuis 2009 avec Vista à vbNet. Mais j'ai tout oublié, les noms me disent quelque chose mais c'est tout !

    Pour les cours ou didacticiel et autres, il n'y a pas 500 ASM, généralement on a Tasm, Masm sur processeur 86 en 32 bits, déjà si on faisait un didacticiel procédural sur ces deux là concernant l'utilisation de l'éditeiur ce ne serait pas mal...

    Détrompe toi pour vbNet, il est bien plus puissant que vb6 (mais quatre fois plus complexe), il est très proche du C#, reprenant le principe du visual C avec les entêtes, la modification possible des routine internes de code, de paramètres ... ce qui fait beaucoup protester ceux qui viennent de vb6 comme moi ... mais bon, on y arrive assez vite son on maîtrise vb5/6.

    Pour ce qui est de l'éditeur, vb6 et vbNet eux aussi peuvent fonctionner avec un code écrit dans le bloc-notes, d'ailleurs parfois je le fais, ceci à condition de bien connaître les instructions, par contre in fine je colle mon texte dans l'éditeur pour le pré-compiler afin de voir ce que ça donne, mais il est peut être possible depuis le fichier texte, de lancer la pé-compilation par un lien en BAT (si je pose cette question sur le forum MS ils vont appeler un psychiatre), pour une appli console ou aveugle par exemple, mais franchement ce serait chercher les ennuis, il y a un bon éditeur, pourquoi s'en passer, et je pense la même chose pour TASM ...

    Au plaisir, cordialement.

    Joe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MASM32] Comment utiliser la fonction printf
    Par _Michel dans le forum x86 32-bits / 64-bits
    Réponses: 26
    Dernier message: 08/11/2007, 11h09
  2. [MASM32] Comment utiliser md5()
    Par sefo dans le forum x86 32-bits / 64-bits
    Réponses: 14
    Dernier message: 13/12/2004, 00h29
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo