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