I Introduction

3. Comment et quand utiliser l'assembleur ?

 

• Intégrer de l'asm dans un programme écrit en C

Comme je l'ai déjà dit dans la section précédente, faire un programme entièrement en asm est particulièrement long et difficile. Par conséquent, dans cette initiation, nous verrons comment intégrer du code asm dans vos programmes écrits en langage C. J'ai choisi le langage C car c'est le plus répandu, de plus si vous vous intéressez à l'assembleur, c'est que vous cherchez la performance, donc vous connaissez sûrement le langage C. Ceci dit, je prends le C juste comme exemple, et quand je parlerais du C, vous pourrez facilement l'adapter à votre langage préféré.

En fait, la meilleure chose à faire pour pouvoir utiliser à la fois l'assembleur et le langage C (ou tout autre langage évolué), c'est de créer des fonctions en asm, de les assembler en tant que fichier objet, d'écrire des fichiers en-têtes (extension .h) pour déclarer vos fonctions au compilateur, puis de linker vos fichiers objets à votre exécutable final. Il existe une autre solution : l'assembleur "inline". Dans ce cas, l'asm et le C sont dans le même fichier source. Mais l'inconvénient, c'est que chaque compilateur établit une syntaxe différente pour le code asm. Et surtout, le compilateur n'est pas prévu pour écrire de l'assembleur, donc la gestion des erreurs est limitée. De plus, la syntaxe est souvent très lourde et complexe. Nous allons donc utiliser la première méthode, et il vous faudra vous procurer un compilateur et un assembleur (voir la section matériel et logiciels nécessaires).

• Dans quels cas utiliser l'asm ?

L'asm pourra vous être utile dans plusieurs cas :

- Si vous avez besoin de vitesse d'exécution. Par exemple, il est très judicieux d'écrire vos routines graphiques (affichage de points, de lignes, de polygones, etc...) en asm. Cela pourra vous faire gagner de nombreuses images par seconde, car vous pourrez alors optimiser au maximum les calculs. Et nous verrons dans la section consacrée à l'optimisation du code que le gain de temps peut être assez conséquent.

- Si vous désirez un code compact, de très petite taille, par exemple pour programmer un virus... mais cela dépasse le cadre de cette initiation.

- Ou tout simplement pour faire quelque chose que votre compilateur ne permet pas. Par exemple, vous serez obligés de passer par l'assembleur pour réaliser un programme TSR (Terminate and Stay Resident), ou pour détourner une interruption (voir les sections suivantes) ; quoique certains compilateurs le font.

Mais je pense que la majorité des personnes qui s'intéressent à l'asm aujourd'hui recherchent la performance, la vitesse, par exemple pour pouvoir programmer un moteur 3D digne de ce nom, ou pour effectuer des calculs conséquents assez rapidement.

Maintenant, avant de commencer à écrire nos premières lignes de codes, voyons ce qu'il est nécessaire de posséder pour pouvoir profiter des joies de l'assembleur...

 


 
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...).