Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

La compilation du programme

Le programme doit être saisi dans un fichier texte non formaté (c'est-à-dire sans caractères en gras, souligné, avec des polices de caractères de différentes tailles, ...) appelé fichier source. En effet, l'assembleur (le programme permettant de faire la traduction du langage assembleur en langage machine) permet uniquement de créer un fichier assemblé à partir du fichier source (il devra comporter l'extension .ASM, en s'appelant par exemple source.asm ou n'importe quel autre nom suivi de l'extension .asm).

L'assembleur va fournir un fichier objet (dont l'extension est .obj) qui va contenir l'ensemble des instructions traduites en instructions machines. Ce fichier .OBJ ne pourra toutefois pas s'exécuter directement car il faut encore lier les différents fichiers.
Comment ça les différents fichiers ?
En effet il est possible de construire un exécutable à partir de plusieurs fichiers sources (à partir d'un certain niveau de programmation il devient intéressant de créer des fichiers contenant des fonctions...). Ainsi, même si vous avez un seul fichier objet il vous faudra utiliser un programme (appelé éditeur de liens) qui va vous permettre de créer un fichier exécutable (dont l'extension sera « .exe »).

Note d'un visiteur :

Les fichiers de sortie ne sont pas obligatoirement des fichiers object, ni même un exécutable !
Il est en effet possible de générer un fichier binaire ne comportant que la traduction exacte du fichier source. Ce fichier binaire pourra par exemple être utilisé comme programme d'amorçage (boot) d'un ordinateur lorsqu'il sera placé sur le secteur d'amorçage (MBR) d'une disquette ou d'un disque dur.

A quoi ressemble un fichier source en assembleur ?

Comme dans tout programme le fichier source doit être saisi de manière rigoureuse. Chaque définition et chaque instruction doivent ainsi s'écrire sur une nouvelle ligne (pour que l'assembleur puisse différencier les différentes intructions). Le fichier source contient :

  • Des définitions de données déclarées par des directives (mots spéciaux interprétés par l'assembleur, nous les étudierons plus tard, le but est ici de donner une idée de ce à quoi ressemble un fichier source). Celles-ci sont regroupées dans le segment de données délimité par les directives SEGMENT et ENDS
  • Puis sont placées les instructions (qui sont en quelque sorte le coeur du programme), la première devant être précédée d'une étiquette, c'est-à-dire par un nom qu'on lui donne. Celles-ci sont regroupées dans le segment d'instructions délimité par les directives SEGMENT et ENDS
  • Enfin le fichier doit être terminé par la directive END suivi du nom de l'étiquette de la première instruction (pour permettre au compilateur de connaître la première instruction à exécuter
  • (Les points-virgules marquent le début des commentaires, c'est-à-dire que tous les caractères situés à droite d'un point-virgule seront ignorés)

Voici à quoi ressemble un fichier source (fichier .ASM) :

donnees   	SEGMENT; voici le segment de données dont l'étiquette est donnees

	;Placez ici les déclarations de données

donnees 	ENDS; ici se termine le segment de données

ASSUME DS:donnee, CS: instr

instr	SEGMENT; voici le segment d'instructions dont l'étiquette est instr

	debut :
 ;placez ici votre première instruction (son étiquette est nommée debut)
 ;Placez ici vos instructions

instr	ENDS; fin du segment d'instructions

END debut; fin du programme suivie de l'étiquette de la première instruction

La declaration d'un segment

Comme nous le verrons plus loin, les données sont regroupées dans une zone de la mémoire appelée segment de données, tandis que les instructions se situent dans un segment d'instructions.

Le registre DS (Data Segment) contient le segment de données, tandis que le registre CS (Code Segment) contient le segment d'instructions. C'est la directive ASSUME qui permet d'indiquer à l'assembleur où se situe le segment de données et le segment de code.
Puis il s'agit d'initialiser le segment de données :

MOV AX, nom_du_segment_de_donnees
MOV DS, AX


Dernière modification le mardi 14 octobre 2008 à 17:40:29.Ce document intitulé « Ecrire un programme en assembleur » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Compiler un programme assembleur avec Nasm Avec Linux Etape 1. Créer un fichier source Etape 2. Assembler le fichier source Etape 3. Création de l'executable Etape 4. Execution du programme Avec windows Etape 1. Installer les logiciels nécessaires Etape 2. Créer un fichier... www.commentcamarche.net/faq/sujet-9836-compiler-un-programme-assembleur-avec-nasm
Programme capture écran! Bonjour, je recherche un programme de capture écran (vidéo) en francais merci www.commentcamarche.net/forum/affich-722291-programme-capture-ecran
Programmation du PIC 16f84 en assembleur Bonjour, Salut , les amis , quelqu'un pourait m'indiquer comment revenir au programme , la ou il s'est arreté , apres coupure d'electricité . le probleme est qu'il recommence tjrs le cycle des le debut ! le programme je l'ai ecrit en ASSEMBLEUR . je... www.commentcamarche.net/forum/affich-10272644-programmation-du-pic-16f84-en-assembleur
Capture d'écran / Copie d'écranPas besoin de logiciel pour effectuer une capture d'écran 1. Comment faire ? 2. Tout l’écran 2.1. Sur PC / Windows 2.2. Sur Mac 3. Une partie de l’écran 3.1. Sur PC / Windows 3.2. Sur Mac 3.3. Sur PC / Linux 4. Une page à... www.commentcamarche.net/faq/sujet-398-capture-d-ecran-copie-d-ecran
Assembleur - Multiplication par une constanteEn assembleur vous pouvez effectuer une multiplication en utilisant les instructions mul (nombres non signés) et imul. On l'utilise ainsi: mul nom_registre Ensuite en interne, le processeur multiplie le contenu de eax ou ax ou al (selon la taille... www.commentcamarche.net/faq/sujet-12520-assembleur-multiplication-par-une-constante
Interfacer du code assembleur et du CInterfacer du code assembleur et du C Introduction Appeler du code assembleur écrit dans un fichier source externe Avec Nasm (x86 uniquement) Compilation/Execution sous Linux Avec Gcc (multiplateforme) Introduction Si, à tout hasard,... www.commentcamarche.net/faq/sujet-8257-interfacer-du-code-assembleur-et-du-c
Programme assembleur détect configuration PCBonjour et bonne année 2004!! J'ai besoin d'écrire un Programme assembleur de détection de la configuration matérielle d'un ordinateur.Merci d'avance www.commentcamarche.net/forum/affich-569459-programme-assembleur-detect-configuration-pc
Filmer ce qui se déroule sur l"écran (Résolu)Salut à tous, Avec Audiograber par exemple, il est possible d'enregistrer ce qui passe par la carte son. Quelqu'un sait-il s'il existe un moyen (ou un logiciel) pour enregistrer en format vidéo ce qui se déroule sur l'écran de mon ordinateur ? Merci www.commentcamarche.net/forum/affich-2252058-filmer-ce-qui-se-deroule-sur-l-ecran
Télécharger 5 Clicks - screen capture programCe logiciel est tout simplement un outil de capture d’écran. Facile à utiliser, il vous suffit de faire 5 clics pour lancer le programme et effectuer une capture à partir de n’importe quel écran. Les images prises peuvent être exportées... www.commentcamarche.net/telecharger/telecharger-34060259-5-clicks-screen-capture-program
5 écrans plats pour passer à la HD(Paris - Relax news) - Depuis hier, jeudi 30 octobre, cinq chaînes (TF1, France 2, Arte, Canal + et M6) émettent certains de leurs programmes en Haute Définition. Pour en profiter, les téléspectateurs doivent être équipés d'un écran HD, et d'un tuner... www.commentcamarche.net/actualites/5-ecrans-plats-pour-passer-a-la-hd-5847615-actualite.php3
Introduction à l'assembleurLes prérequis nécessaires Le langage assembleur est très proche du langage machine (c'est-à-dire le langage qu'utilise l'ordinateur : des informations en binaire, soit des 0 et des 1). Il dépend donc fortement du type de processeur. Ainsi il... www.commentcamarche.net/contents/asm/assembleur.php3
Analyste programmeur (développeur)Développeur Le métier de développeur (également nommé analyste-programmeur) consiste à concevoir et à développer une application informatique, c'est-à-dire transcrire un besoin en une solution informatique écrite dans un langage informatique.... www.commentcamarche.net/contents/metiers-informatique/analyste-programmeur-developpeur.php3
Les procédures en assembleurLa notion de procédure En langage assembleur, on appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la procédure. Cette notion de sous-programme est généralement appelée fonction dans d'autres... www.commentcamarche.net/contents/asm/procedure.php3