I Introduction

4. Matériel et logiciels nécessaires

 

• L'assembleur

Il existe de nombreux assembleurs. Les plus connus sont MASM (Macro Assembler) de Microsoft et TASM (Turbo Assembler) de Borland. Mais ce ne sont pas les meilleurs : ils sont payants, et la syntaxe utilisée pour l'asm et horrible et illogique. Il existe aussi de nombreux assembleurs gratuits. Celui que nous allons utiliser lors de cette initiation est NASM ( Netwide Assembler ). C'est celui que j'utilise. Il est complet (instructions Pentium et MMX), gratuit, bien documenté (y compris la documentation de toutes les instructions supportées), et possède une syntaxe logique et agréable à lire. Le seul hic, c'est qu'il n'est pas encore en version finale : la dernière version est la 0.98. Mais il est parfaitement utilisable et ne possède pas ou très peu de bugs. Téléchargez-le sans plus attendre !

 

• Le linker

L'assembleur ne créé pas un fichier exécutable (.exe) directement, mais produit un fichier objet. Un fichier objet contient des instructions assemblées, et le nom des symboles (fonctions, variables, etc...) utilisés. Ce fichier n'est pas exécutable directement. C'est le linker qui va se charger de convertir le fichier objet en fichier exécutable. Mais alors quel est son intérêt ? Pourquoi l'assembleur ne produit pas directement un fichier exécutable ? C'est parce-que le linker peut aussi combiner plusieurs fichiers objets (pas obligatoirement créés avec le même assembleur) pour former un seul fichier exécutable. Cela vous permet d'inclure dans vos programmes des librairies, c'est-à-dire un ensemble de fonctions externes au programme (par exemple il existe des librairies qui s'occupent du son, du joystick, de l'affichage en 3 dimensions, etc...) qui ont été crées avec un assembleur différent, ou même avec un compilateur. Cela vous permet aussi de séparer votre programme en plusieurs fichiers sources (ce qui est vivement conseillé pour des gros programmes), ce qui vous permet de mieux vous y retrouver, et aussi d'accélérer les temps d'assemblage (seuls les fichiers sources que vous avez modifiés sont assemblés). Si vous n'avez pas compris ce que je viens de raconter, ne vous inquiétez pas, vous comprendrez plus tard par la pratique.

Comme nous allons programmer en 32 bits, il nous faut un linker qui supporte le mode protégé (voir la section mode réel et mode protégé [BIENTOT DISPONIBLE]). Le 32 bits n'est pas à l'origine supporté par DOS, il faut donc utiliser un DOS-EXTENDER : c'est un programme qui permet de lancer des exécutables fonctionnant en mode protégé (donc en 32 bits) sous DOS. Le plus simple est d'utiliser l'environnement DJGPP : c'est le portage du compilateur GCC du monde Linux pour DOS, créé par DJ Delorie. Il contient un compilateur C et plein d'autres d'outils très utiles, dont un linker 32 bits, un DOS-EXTENDER, un débogueur (sert à trouver les erreurs dans les programmes, en l'exécutant pas à pas), un programme "make" (vous tapez "make", et le programme se charge d'assembler uniquement les fichiers sources modifiés, puis de linker le tout ; mais avant il faut créer un script indiquant les actions à effectuer : voyez la documentation), et même un assembleur (en fait il est utilisé en interne par le compilateur, on ne peut pas l'utiliser pour programmer en asm directement car il possède une syntaxe plus qu'horrible (syntaxe AT&T) et ne possède pas de documentation). Mais surtout, il fait partie du projet GNU, c'est-à-dire qu'il est gratuit et est livré avec ses sources.

En téléchargement :

Pour linker les fichiers objets crées par NASM, vous devez au moins télécharger le linker. Vous aurez également besoin du DOS-EXTENDER (en fait c'est un serveur DPMI) CWSDPMI. Tout ceci est regroupé dans ce fichier : asm.zip (1,84 Mo).
Ensuite, vous pouvez si vous voulez télécharger c.zip (2,40 Mo), qui contient le compilateur C. Il nous servira pour créer des exemples d'interfacage de l'asm dans des programmes C.
Pour visualiser toutes les documentations de DJGPP, vous aurez besoin de texinfo : txi390b.zip (455 Ko).
Et pour finir voici une très grosse FAQ sur DJGPP, frfaq21b.zip (316 Ko).

Si vous voulez des versions à jour, allez sur le site officiel de DJGPP : www.delorie.com/djgpp. Il vous faudra télécharger :

le linker : bnuXXXb.zip
le serveur DPMI : csdpmiXb.zip
le compilateur C : gccXXXb.zip
le kit de développement : djdevXXX.zip
texinfo : txiXXXb.zip
la FAQ : frfaqXXb.zip

Les XXX représentent les numéros de la dernière version.

• Un éditeur de texte

N'importe quel éditeur de texte peut faire l'affaire, même l'edit du DOS ou le bloc-notes de Windows.

• Côté matériel

Il vous faut simplement un PC muni d'un processeur Intel 386 ou supérieur. Vous devriez avoir ça... :) Ne vous inquiétez pas : un programme écrit pour le 386 fonctionnera sans problème sur un Pentium ; par contre l'inverse n'est pas vrai. En effet, chaque nouvelle génération de processeur apporte de nouvelles instructions, mais ne modifie pas l'usage des instructions qui existaient déjà (heureusement d'ailleurs).

 


 
Copyright 2000 Jean-Rémy Lacharnay. Je ne pourrais être tenu pour responsable des éventuelles conséquences que l'exécution des exemples fournis peut avoir sur votre machine (plantages, pertes de données, etc...).