|
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 : pour commencer [ Divers / Général ] (didoux95)
Informations & options pour cette discussion
|
mardi 12 juin 2007 à 13:54:03 |
pour commencer

didoux95
|
Bonjour a tous. j'ai des connaissance en Java et j'aimerais apprendre l'Assembleur. je me suis déjà un peu rensseigné sur le net et j'ai trouver quelque tutos. Cependant, les avis restent assez partagés sur quel compilateur utiliser et aussi sur quel éditeur utiliser. J'aimerais avoir vos avis pour débuter en Assembleur dans les meilleurs conditions ;-) merci.
|
|
|
|
mardi 12 juin 2007 à 15:17:28 |
Re : pour commencer

Nasman
|
Bonjour,
Personnellement j'utilise Nasm, assembleur multi plateforme qui permet de compiler sous plusieurs formats, omf, coff, coff pour windows, binaire. Il est simple d'emploi et est téléchargeable sur sourceforge.net
Pour l'édition des liens j'utilise alink (télechargeable sur le même site)
Pour la compilation des ressources j'utilise gorc
Enfin pour travailler de façon plus conviviale j'utilise ConText comme IDE. Ce dernier permet d'éditer le programme (éditeur de texte) mais également possède des boutons d'action paramètrables pour lancer la compilation, l'édition de liens etc.
Un conseil pour débuter, regarde les sources les plus simples pour comprendre les différentes instructions en assembleur. L'assembleur n'est pas un langage très compliqué (les instructions sont en nombre limité), ce qui complique les choses c'est l'utilisation des fonctions du système d'exploitation (en bien plus grand nombre). Un programme assembleur utilisant les interruptions DOS ou les API windows sera à reprendre quasiment en entier pour fonctionner sous unix et vice versa.
C'est un langage très proche de la machine, des instructions pour un Pentium ne fonctionneront pas sur un microprocesseur plus archaïque.
A+
|
|
|
|
mardi 12 juin 2007 à 16:11:48 |
Re : pour commencer

didoux95
|
slt. Merci pour ta réponse. Est ce que tu pourait m'en dire plus sur Nasm (je l'ai téléchargé et je me retrouve avec trois fichiers : deux .exe. et un .FICHIER donc je suis un peu perdu).
merci.
|
|
|
|
mardi 12 juin 2007 à 16:29:02 |
Re : pour commencer

_dune2_
|
Salut, tu trouveras un tutorial pour nasm sur ce lien : [ Lien ]Ne pas oublier que google est ton meilleur ami ;) Gentoo... que du bonheur ...
|
|
|
|
mardi 12 juin 2007 à 16:46:26 |
Re : pour commencer

Nasman
|
Rebonjour didoux95,
S'il y a plusieurs fichiers exécutables c'est que chacun est conçu pour fonctionner sur des environnements différents: Si tu travailles sur une plateforme Windows 32bits (ce que j'estime fort probable), c'est le Win32 binaries qui t'interesse. Si tu travailles sous DOS ou Linux tu devras télécharger DOS binaries ou Linux RPM binaries.
Sous windows tu auras l'exécutable nasmw.exe (assembleur) et ndisasmw.exe (desassembleur). Je te conseille de télécharger le chm manual pour savoir utiliser nasm. Ce dernier fonctionne en mode console (ligne de commande) par exemple:
nasmw -fbin monfichier.asm donne un fichier binaire pur (pour .com .sys) nasmw -fobj monfichier.asm donne un fichier .obj (format omf) - pourra alors transformé à l'édition de liens en exe, dll d'autre formats sont disponibles pour Linux etc...
Si tu veux t'exercer à la compilation avec Nasm, regarde une de mes précédentes sources http://www.asmfr.com/codes/CREATION-DIFFERENTS-EXECUTABLES-AVEC-NASM-ALINK_37036.aspx
A+
|
|
|
|
mardi 12 juin 2007 à 17:30:20 |
Re : pour commencer

didoux95
|
Bonjour. j'ai regarde le lien que tu m'a passé et ... c'est pas contre toi, mais j'ai rien compris. peut-être est ce par ce que je suis sur l'assemble depuis ce matin mais bon je suis un peu larguer. Ce que j'ai compris : il faut compiler le .asm anvant d'en faire un .exe un .dll ou autre. Ce que je n'ai pas compris: comment utiliser Alink pour "convertir" le fichier compilé en .exe (donc, entre autre, utiliser ta source).
je te remerci de bien vouloir m'aiclairer parceque je dois avouer que là j'arrive plus a suivre lol. merci.
|
|
|
|
mardi 12 juin 2007 à 17:35:05 |
Re : pour commencer

sheorogath
|
Réponse acceptée !
[ Lien ]
telecharge naside (l'executable pas la version java qui est pas au point) ensuite il te fait tout automatiquement meme le link ^^ " n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
|
|
|
|
mercredi 13 juin 2007 à 09:01:38 |
Re : pour commencer

Nasman
|
Réponse acceptée !
Bonjour didoux95,
Lorsque tu veux réaliser un fichier exécutable tu dois effectuer les opérations suivantes:
1) Ecrire un programme (format texte) contenant les instructions (mnémoniques) devant être exécutées pas le microprocesseur. Pour des questions de commodité les adresses ne sont généralement pas écrites en dur mais font références à des labels du style jne fin xxx yyy zzz fin suite du programme
Si le résultat est différent de zéro alors va à fin sinon exécute xxx, yyy et zzz
Si tu utilises des labels appartenant à un autre morceau de programme (assemblé par ailleur), il faudra que tu déclares ces label comme provenant d'un fichier externe.
2) Compiler le programme C'est là que Nasm intervient, son rôle est de transformer les instructions sous forme de mnémoniques en octets. Par exemple mov dx,hello devient BA 0C 01 (écriture dont la compréhension est moins évidente). BA correspond à mov dx et 0C 01 correspond à l'adresse de hello, en l'occurence l'adresse d'offset 010C. L'offset 0100 correspond au début du programme .com (c'est la directive org 0x100) et 0C (soit 12 en décimal) est la distance entre le début du programme et l'étiquette hello (c'est en fait la longueur de la section programme car hello est la première étiquette de la section de données). Si ton programme n'utilise pas de références externes la compilation (format -fbin) te donnera quelque chose de directement exécutable (si le nom du programme compilé est xxx.com. Dans le cas contraire tu devras passer par un fichier objet qui contiendra la conversion mnémoniques/octets mais aussi les références externes nécessaires (labels externes, bibliothèques, fonctions importées).
3) Effectuer l'édition des liens. C'est là qu'alink (ou un autre linker) intervient. Son rôle est de rassembler les différents morceaux compilés, par exemple programme principal et sous programmes, ressources et de résoudre les problèmes de références aux étiquettes. Tu pourras avoir par exemple: alink -oPE programmeprincipal.obj sousprogramme.obj ressource.res win32.lib
Ce qui se traduit en: crééer un exécutable windows (format PE) en rassemblant programmeprincipal.obj (déjà compilé) sousprogramme.obj (déjà compilé) ressourse.res (ressource compilée format .res - elle peut aussi être compilée en .obj pas GoRC) win32.lib librairie contenant des tas de déclarations, Si le programme déclare une référence comme extern, il faut que cette même référence ait été déclarée comme global pas le module où elle se situe (pour qu'elle soit vue pas les autres modules.
J'espère que j'ai pu t'éclairer sur ce point. Nota: dans la souce citée en référence j'ai mis les instructions de compilation et pour l'édition des liens. Ce qui est entre crochets (facultatif) sert à donner un nom de sortie spécifique (dans ce cas il faut enlever les crochets)
A+
|
|
|
|
mercredi 13 juin 2007 à 14:44:06 |
Re : pour commencer

didoux95
|
Merci beaucoup. je commence comprendre pas mal de choses.
|
|
|
Cette discussion est classé dans : utiliser, assembleur, avis, commencer
Répondre à ce message
Sujets en rapport avec ce message
commencer en assembleur [ par raidentr ]
Quel est le meilleur soft pour commencer en Asm sur PC sous Windows ?
Débutant : Commencer par le début [ par cire2003 ]
BonjourJe viens tout juste de commencer à apprendre l'assembleur et dans les tuto que je lis, ils y a différents exemples. Je les retranscris et les c
Utiliser un ActiveX dans un projet assembleur [ par vulpes87 ]
BonjourDepuis un bout de temps je recherche des informations, si c'est possible d'utiliser un ActiveX dans un projet assembleur. J'ai utilié des resso
OS -> passer d'ASM au C pour la programmation [ par djmoa ]
Bonjour. j'ai quelques notions d'assembleur, et j'aimerai commencer la programation d'un petit OS, me basant sur des choses existant, mais je vois bea
NASM et DEVCPP - fonction assembleur appellee en C/C++ [ par jean84 ]
Salut a tous !Et bien comme le titre l'indique, je souhaiterai creer des fonctions en assembleur et pouvoir les appeller en C/C++ dans le meme projet.
Comment faire un sleep en assembleur MIPS ? [ par Yakurena ]
Bonsoir, J'aimerais faire un programme en assembleur MIPS permettant de synchroniser la saisie de caractères au clavier par l'utilisateur et leur affi
SPBRG [ par blueburry ]
Bonjour, je suis en train de programmer un PIC16F877 et je suis en train d'utiliser un quartz de 20 MHz. Je voudrais utiliser le registre USART en mod
HELP ! apprentissage de l'assembleur HELP ! [ par scottmat ]
Bonjours à tous, Je programme actuellement en VB.Net 2005 et
Assembleur et langage C sous Linux [ par lapinfroid ]
Bonjour a tous ,avant toute chose , je tiens a preciser que j en ai aucune notion d'assembleur Je pratique plutot le C et le JavaDans un programme C ,
documentation fasm [ par koma24 ]
Salutje débute en assembleur et le seul assembleur que j'ai réussi a installer est fasm.Mais le problème c'est que je ne trouve pas de documentation e
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|