L'assembleur

L'assembleur

La programmation dans des langages complexes tels que le C++, dits de haut niveau, n'est pas immédiatement comprise par le processeur. Pour cela il faut qu'il soit converti, soit par une machine virtuelle, dans le JAVA par exemple, soit en langage binaire par un compilateur.

Il est possible de convertir ce langage binaire en assembleur et inversement puisque ce dernier est juste une autre manière d'écrire le premier. Au lieu de suites de 0 et de 1, on donne de vrais noms à chaque instruction du processeur, à ses registres... bref... tout ce qui le compose.

Les instructions sont du types OPCODE + OPERANDE1 [ + OPERANDE2 [+ OPERANDE3]]...

L'OPCODE correspond à un nom court donné à l'instruction (comme add, sub, mrmovl...) et les opérandes correspondent aux paramètres passés.

L'assembleur nécessite cependant de bien connaître le fonctionnement du processeur et ses jeux d'instruction. Prenons l'exemple des registres, il s'agit de petits emplacements de mémoire très proches de l'unité de calcul et très rapides mais aussi très cher par rapport à de la RAM. Il faut connaître le nom de chaque registre et son utilité pour s'en servir de manière efficace.

Dans les processeur de la famille des x86 (majorité des processeur de PC actuels et dont l'architecture AMD64 dérive), il existe aussi la pile, un stockage de données du types LIFO (Last In First Out), ce nom lui a été donné car elle fonctionne comme une pile d'assiettes et le registre ESP nous indique où se situe la pile dans l'adresse.

L'assembleur permet donc de faire le lien entre les abstractions de langages de hauts niveaux, plus pratiques à manier, et le fonctionnement propre du matériel.

Créez votre site web gratuitement ! Ce site internet a été réalisé avec Webnode. Créez le votre gratuitement aujourd'hui ! Commencer