Compiler un programme d'assemblage avec NASM

La compilation d’un programme d’assemblage avec NASM peut être réalisée sous Linux ou Windows, car NASM est disponible pour les deux plates-formes. Netwide Assembler (NASM) est un assembleur et un dissembleur pour l'architecture Intel x86. Il est couramment utilisé pour créer des programmes 16 bits, 32 bits (IA-32) et 64 bits (x86-64).

Un assemblage transforme votre codage de bas niveau, à l'aide de mnémoniques, en un langage machine compréhensible par le processeur. Cet article ne vous apprendra pas à programmer avec NASM, mais à créer une commande exécutable pour Linux et Windows à partir du code source NASM.

  • Compilation d'un programme d'assemblage avec NASM pour Linux
    • Création du fichier source
    • Assemblage du fichier source
    • Créer l'exécutable
    • Exécution du programme
  • Compiler un programme d'assemblage avec NASM pour Windows
    • Installation du logiciel
    • Création d'un fichier source
    • Assemblage du fichier source
    • Création et exécution du programme

Compilation d'un programme d'assemblage avec NASM pour Linux

Création du fichier source

Vous pouvez utiliser n'importe quel éditeur de texte, tel que Gedit, KWrite ou XEmacs, pour le faire. Lorsque vous enregistrez votre fichier, attribuez-lui l’extension .asm .

Assemblage du fichier source

Pour cette étape, vous aurez besoin du logiciel NASM installé sur votre ordinateur.

Si vous utilisez Debian ou Ubuntu, tapez simplement la commande:

 sudo apt-get install nasm 

Si vous avez une autre distribution Linux, vous devez utiliser le gestionnaire de paquets de votre distribution (par exemple, Urpmi, Yum, Emerge) ou télécharger NASM à partir du site officiel.

Utilisez la ligne de commande suivante pour assembler votre fichier source:

 nasm -f elf test.asm 

Dans l'exemple, le fichier .asm enregistré s'appelle test.asm . Cela créera un fichier nommé test.o dans le répertoire actuel.

NB Ce fichier n'est pas exécutable. C'est toujours un fichier objet.

Créer l'exécutable

Maintenant que nous avons notre fichier objet, nommé test.o, nous devons créer notre exécutable.

Votre programme peut commencer par une procédure appelée _start . Cela signifie que votre programme a son propre point d'entrée, sans utiliser la fonction principale . Cependant, vous devrez utiliser le "l" pour créer votre exécutable:

 ld test.o -o test 

Sinon, votre programme peut commencer par une procédure appelée main . Vous devrez utiliser gcc pour créer votre exécutable:

 gcc test.o -o test 

Maintenant, votre exécutable est créé, testé et situé dans le répertoire actuel.

Exécution du programme

Pour exécuter le programme appelé test, tapez simplement cette commande:

 . / test 

Compiler un programme d'assemblage avec NASM pour Windows

La fonction principale n'est pas disponible sous Windows et doit être remplacée par WinMain .

Si votre point d'entrée est _start ou main, vous devez le remplacer par _WinMain @ 16 . Changez également le ret à la fin de la procédure en ret 16 :

 section .text

global

:

mov eax, 0

ret 16

Installation du logiciel

Vous devez d'abord installer //ccm.net/download/download 1025 NASM. Conservez une archive quelque part, car elle sera utilisée plus tard.

L'étape la plus difficile consistera à installer MinGW, qui est un environnement de développement gratuit pour Windows:

Commencez par choisir la dernière version de MingGW dans AZ. Exécutez le programme d'installation, mais ne mettez pas à jour à ce stade. Laissez toutes les options sélectionnées par défaut et attendez son installation.

Vous devez maintenant insérer NASM dans l'environnement de développement MinGW. Décompressez l'archive NASM. Vous devriez obtenir un dossier contenant, entre autres choses, un fichier nommé nasm.exe . Copiez ce fichier dans le répertoire C: \ MinGW \ bin .

Création d'un fichier source

Comme Linux, il n'est pas nécessaire d'utiliser un éditeur spécifique pour créer un fichier source pour NASM. Vous pouvez utiliser le Bloc-notes . Mais notez qu'il a tendance à ajouter l'extension .txt aux fichiers qu'il crée. Pour supprimer toute ambiguïté, il est recommandé d'afficher les extensions de vos fichiers.

Dans tous les cas, évitez les traitements de texte, tels que Word ou WordPad .

Si vous le souhaitez, vous pouvez également utiliser un éditeur utilisant la syntaxe NASM, tel que l' EDI NasmEdit .

Assurez-vous d’enregistrer votre fichier source avec l’extension .asm .

Assemblage du fichier source

Ouvrez la fenêtre de commande en allant sur Démarrer> Exécuter et en tapant cmd.exe.

A l’aide de la commande cd, allez dans le dossier contenant votre fichier source. Une fois dans ce répertoire, assemblez votre fichier source ( test.asm ) avec cette commande:

 nasm -f win32 test.asm -o test.o 

Vous avez maintenant créé un fichier objet. La prochaine étape consistera à le transformer en un fichier exécutable.

Création et exécution du programme

Dans la fenêtre de commande, tapez la dernière commande pour créer le fichier exécutable:

 ld test.o -o test.exe

Image: © Alexandr Pakhnyushchyy - Shutterstock.com

Article Précédent Article Suivant

Les Meilleurs Conseils