Introduction à l'assembleur Intel x86

Un article de Haypo.

Retour à la page précédente Retour à l'assembleur

[modifier] Introduction

Le processeur d'un ordinateur ne comprend aucun langage de programmation : ni Turbo Pascal, ni assembleur, et encore moins C ou Java. Il ne comprend qu'une seule langue : le langage machine. C'est une liste d'instructions à longueur variable (entre 1 et 8 octets je crois) ressemblant à « B0 12 ».

L'assembleur est la représentation « humaine » du code machine. Pour notre exemple (B0 12), cela donne « mov al, 12h » : copie la valeur 12h dans le registre AL. C'est donc le langage de programmation le plus proche du processeur.

[modifier] À quoi ça sert ?

La première question qu'on se pose est « À quoi ça sert ? ». Le premier intérêt est la performance, car grâce à ce langage, on peut utiliser toutes les optimisations d'un processeur, chose que peu de compilateur savent vraiment exploiter. Le deuxième intérêt, qui n'est peut-être plus d'actualité aujourd'hui, est l'accès aux interruptions DOS qui permettent un accès direct au matériel tel que la souris, l'écran, ou la carte vidéo.

[modifier] À n'utiliser qu'en dernier recours

Personnellement, je vous déconseille vivement d'écrire un programme entièrement en langage assembleur. On se perd vite dans le code source, qui peut rapidement atteindre plusieurs milliers de lignes. De plus, le code source est difficilement lisible, et la maintenance longue et pénible.

Le seul usage vraiment utile est l'optimisation ultime d'une portion de code. Mais il faut toujours commencer par optimiser son algorithme avant de passer à l'assembleur.