Programmation Assembleur

Programmation Assembleur
Modifier ce modèle
Retour au livre Programmation

Consultez également ces pages dans d’autres projets Wikimedia :

Ressources multimédia sur Commons.
Article encyclopédique sur Wikipédia.
Définition sur Wiktionnaire.
Ressources éducatives sur Wikiversité.

Le langage Assembleur ou langage d'assemblage, dit assembleur tout court, est le langage de programmation le plus proche - tout en restant lisible par un être humain - du langage machine utilisé par le (micro)processeur de la machine. Le langage machine exprime les instructions des programmes par des combinaisons de bits, comme

10110000 01100001

En langage d'assemblage, ces instructions sont représentées par des symboles mnémoniques bien plus lisibles, comme

 mov $0x61, %al

(qui signifie de mettre la valeur hexadécimale 61 (97 en décimal) dans le registre 'AL'.)

Contrairement à un langage de haut-niveau, il y a une correspondance 1-1 entre le code assembleur et le langage machine, ainsi les ordinateurs peuvent traduire le code dans les 2 sens sans perdre d'information. La transformation du code assembleur dans le langage machine est accomplie par un programme nommé Assembleur, dans l'autre sens par un programme Désassembleur. L'opération s'appelle respectivement, assemblage et désassemblage. Dans un programme réel en Assembleur, c'est un peu plus complexe que cela (on peut donner des noms aux routines, aux variables), et on n'a plus cette correspondance.

Chaque architecture d'ordinateurs a son propre langage machine, et donc son propre langage d'assemblage (l'exemple ci-dessus est pour l'architecture x86 des PC). Ces différents langages diffèrent par le nombre et le type d'opérations qu'ils ont à supporter. Ils peuvent avoir des tailles et des nombres de registres différents, et différentes représentations de type de données en mémoire. Tandis que tous les ordinateurs sont capables de faire les mêmes choses, ils le font de manière différente.

Par ailleurs, il peut exister plusieurs syntaxes pour le même jeu d'instruction, selon les conventions choisies par le fournisseur du programme d'assemblage. L'exemple ci-dessus était donné en syntaxe AT&T, en syntaxe Intel il s'écrit :

 MOV AL,61h

La syntaxe la plus populaire est généralement celle utilisée dans la documentation du fabricant du processeur.