Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
FORUM ASSEMBLEUR FAQ ASSEMBLEUR LIVRES ASSEMBLEUR
DEUXIEME PARTIE

PREMIER CONTACT AVEC LE LANGAGE ASSEMBLEUR


Cette partie a pour but de vous présenter l’architecture du langage assembleur à travers de courts exemples. Ne vous inquiétez pas si vous ne comprenez pas parfaitement certaines instructions : toutes seront détaillées dans la troisième partie. L’essentiel est que vous compreniez grossièrement ce qu’on fait et pourquoi on le fait. Les explications qui accompagnent ces exemples devraient y suffire. Vous pourrez ensuite apprendre le langage en lui-même en consultant la partie suivante.


Remarques pratiques préliminaires :

  • Les mots qui sont imprimés en italique sont ceux qui ne font pas partie du langage en lui-même. Ils sont choisis par le programmeur.

  • Tous les programmes présentés ci-dessous suivent la syntaxe du compilateur TASM. Il existe de très légères différences d’un compilateur à l’autre.

  • Le code peut être écrit en majuscules ou en minuscules. Chaque mot est séparé des autres par des espaces ou des tabulations.

  • Les commentaires sont précédés du signe ‘;’.

  • Les nombres doivent toujours commencer par un chiffre (entre 0 et 9), même les nombres hexadécimaux. Il faut donc écrire 0F2Ah et non pas F2Ah. Par contre, l’écriture 5CFh est correcte.

  • Les apostrophes et les guillemets sont équivalents. Il est cependant plus commode de réserver l’usage des guillemets aux chaînes de plusieurs caractères et celui des apostrophes aux caractères isolés.

  • Vous pouvez taper vos programmes avec l’éditeur de texte du DOS (EDIT.COM). Donnez-leur l’extension ‘.asm’.

  • La compilation se fait en tapant “TASM /m9 MONPROG” si votre source s’appelle ‘MONPROG.ASM’.

Le paramètre ‘/m9’, facultatif, indique au compilateur qu’il devra effectuer 9 passes, c’est-à-dire qu’il examinera 9 fois le code source. Comme chaque examen se fait de manière linéaire, le compilateur trouve parfois des instructions qui font référence à des labels placés plus loin dans le programme. Il manque donc d’informations, mais il continue son examen jusqu’à la fin. Quand il a terminé, il recommence tout depuis le début pour résoudre les problèmes qui s’étaient posés.

La compilation crée un fichier objet (‘.obj’). Pour obtenir un fichier EXE, tapez ”TLINK MONPROG”. Pour un fichier COM, tapez “TLINK /tdc MONPROG”.

Après l’édition des liens (le « linkage »), vous pouvez supprimer les fichiers MONPROG.obj’ et ‘MONPROG.map’.

  • Il est possible de créer un fichier BAT qui s’occupe de toutes ces étapes. Ouvrez l’éditeur EDIT du DOS et tapez un programme tel que celui-ci :

@ECHO OFF
TASM /m9 %1.asm
IF NOT EXIST %1.obj GOTO FIN
TLINK %1.obj REM : ajouter ici /tdc pour obtenir un fichier COM
ERASE %1.map
ERASE %1.obj
:FIN

Enregistrez-le et nommez-le MAKE.BAT. Vous pouvez compiler et linker en tapant “MAKE MONPROG”. Pour compiler des fichiers COM, ajoutez le paramètre '/tdc' à la commande TLINK.

  • Pour pouvoir lancer TASM et TLINK quel que soit le dossier courant, changez la variable PATH ainsi :

PATH = %path%;c:\MonChemin\DossierTASM

Vous pouvez inclure cette ligne à la fin de votre fichier AUTOEXEC.BAT afin qu’elle soit exécutée à chaque démarrage.

  • Vous pouvez débugger vos programmes (par exemple les exécuter instruction par instruction en observant les changements induits dans la RAM et dans les registres,...) avec le logiciel Turbo Debugger 16/32 bits qui est très pratique et très performant. A défaut, vous pouvez vous rabattre sur l'archaïque DEBUG.COM (il se trouve dans votre dossier de commandes DOS). Mais alors bon courage !



Le seul travail du compilateur (et du linkeur) est de convertir chacune de vos instructions en son équivalent en langage machine. Le programme compilé présentera donc exactement la même structure et la même linéarité que votre code source.



Sommaire

Suite



Responsable bénévole de la rubrique Assembleur : Florent Humbert (Millie) - Contacter par EMail :
Vos questions techniques : forum d'entraide Assembleur - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.