GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

L'assembleur

0. Introduction


Le langage d'assemblage est situé une couche au-dessous du langage C, déjà bien proche de la machine. Il est une représentation "humainement compréhensible" du langage machine. Il est tellement proche du système qu'il existe un langage d'assemblage pour chaque processeur. Il a été inventé vers le début des années 1950 et l'un des premiers ordinateurs à recevoir un programme écrit en assembleur fut l'IBM 701 en 1954. C'était un ordinateur qui coûtait la bagatelle de 8000 US$ par mois soit environ 80000 de nos dollars d'aujourd'hui avec l'inflation. Utilisé pour le calcul scientifique, l'IBM 701 a été devancé par l'Univac 1103 pour le calcul météorologique. Mais je m'égare...

Autant le dire tout de suite, l'assembleur est compliqué, voire très compliqué. Ce n'est pas aussi simple à utiliser que du Python mais c'est extrêmement plus rapide et efficace que l'intégralité des autres langages du fait que, lors de la programmation en assembleur, c'est comme si vous programmiez directement le processeur de votre ordinateur. Il n'y a pas d'intermédiaire entre votre code et votre machine. ATTENTION : tout peut se faire en assembleur mais il n'y a absolument aucun garde-fou sur ce que vous pouvez faire et les bug peuvent être terribles...

Il y a plusieurs syntaxes utilisées par les langages d'assemblage en fonction des architectures des micro processeurs : Intel, Motorola, AT&T, MIPS, ARM... et donc des jeux d'instructions distincts. L'aasembleur dispose d'opérations élémentaires permettant de manipuler la mémoire, de réaliser des calculs, des comparaisons et des sauts dans la mémoire.

Mais pourquoi utiliser un langage comme celui-ci si c'est si compliqué ? Par curiosité d'esprit, du hacking, de l'optimisation de programmes existants ou autres. La courbe d'apprentissage est longue et difficile mais comme disait l'autre : pour la beauté du geste...