Assembleur/Le programme assembleur
Qu’est ce qu'un assembleur
[modifier | modifier le wikicode]L'assembleur est un terme qui peut désigner deux choses. Avant d’être un langage informatique, c’est un programme qui permet de recréer des fichiers exécutables à partir de fichier .asm ou .s. Contrairement à un compilateur, l'assembleur a un fonctionnement beaucoup plus simple. De tels programmes transcrivent directement les instructions en code binaire, sans autres formes de traitement. Ainsi, l'instruction :
JMP somewhere
sera transcrite en un code binaire semblable à 11101011 XXXXXXXX ou 11101011 (EB en hexadécimal) représentant un JMP. Un JMP correspondra toujours à cette séquence binaire. Cela est possible car l'ASM est un langage très proche du langage machine.
L'autre utilité d'un assembleur est d'aider le programmeur dans sa tâche, notamment grâce à l’utilisation de macros et de constantes, ceci afin de faciliter la lecture et l'écriture du code.
Les assembleurs
[modifier | modifier le wikicode]Il existe nombres d'assembleurs, disponibles un peu partout sur la toile. Les plus connus sont :
- TASM, Turbo Assembleur (propriétaire)
- MASM, Macro Assembleur Microsoft (propriétaire)
- FASM, Flat Assembleur (libre)
- NASM, Netwide Assembleur (libre)
- YASM
- GNU Assembleur (libre)
La seule différence entre tous ces Assembleurs est une petite variation de la syntaxe.
Lequel choisir
[modifier | modifier le wikicode]C'est à vous de faire un choix. Nous vous conseillons tout de même d’utiliser NASM, c’est celui qui sera utilisé tout au long de ce cours.
Comment utiliser NASM
[modifier | modifier le wikicode]Vous trouverez toutes les informations sur l’utilisation de NASM dans la documentation officielle. Celle-ci est disponible depuis la section Liens externes de ce cours. Voila tout de même la marche à suivre pour assembler son code source.
Assembler sous windows
[modifier | modifier le wikicode]Sous l'OS Windows, deux possibilités d'assemblage s'ouvrent à vous :
- Les fichiers .com
- Les fichiers .exe
Dans les deux cas, seule l'extension du fichier de sortie change dans la ligne de commande. Pour créer de tels exécutables, tapez la ligne suivante dans une fenêtre MS-DOS.
nasm fichier.asm -f bin -o executable.com
ou
nasm fichier.asm -f bin -o executable.exe
Remarque : seul nasm.exe est utile à l'assemblage. Les autres fichiers fournis avec ne nous serviront pas dans ce cours.
Pour éviter d’avoir à rechercher NASM avec MS-DOS, un petit fichier.bat nommé nasmpath.bat se trouve à la racine de votre installation. Il vous suffit alors de copier ce fichier à l'endroit où vous travaillez, par exemple Mes documents et de lancer ce .bat pour pouvoir directement taper la ligne de code d'assemblage.
Assembler sous UNIX
[modifier | modifier le wikicode]Pour créer des exécutables sous un système d'exploitation UNIX, vous pouvez utiliser la ligne de commande suivante
$> nasm fichier.asm -f elf -o executable.o
De nombreuses options sont disponibles pour l'assemblage, lisez le chapitre deux de la documentation officielle (anglais).
Liens externes
[modifier | modifier le wikicode]