blog2geek.com
AsmAvatar de Asm

6 billets | Profil

Recherche Google

ce blog tous
Derniers billets Connexion
Archives

cours-assembleur

05/02/2007

Introduction

Le langage assembleur ou langage d'assemblage, dit aussi assembleur ou abrégé ASM, est le langage de programmetion  lisible pour un humain le plus proche du langage machine utilisé par le microprocesseur de la machine. Le langage machine est une combinaison de bits, il est rendu lisible en remplaçant les valeurs brutes par des symboles appelés mnémoniques (du grec mnêmonikos, relatif à la mémoire) simples et plus faciles à retenir.

Par exemple, alors qu'un processeur de la famille x86 reconnaîtra ce que l'instruction machine

 10110000 01100001

signifie, pour le programmeur c'est plus simple de se souvenir de son équivalent en langage assembleur :

 mov %al,$0x61

(cela signifie de mettre la valeur hexadécimale 61 (97 en décimal) dans la partie de registree 'AL'.)

Contrairement à un langage de haut niveauu, il y a une correspondance un à un entre le code assembleur et le langage machine, ainsi il est possible de traduire le code dans les deux sens sans perdre d'information. La transformation du code assembleur en langage machine est accomplie par un programme nommé assembleurr, dans l'autre sens par un programme désassembleurr. Les opérations s'appellent 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. Sur les premiers ordinateurs, la tâche d'assemblage était accomplie manuellement par le programmeur.

Chaque architecture d'ordinateurss a son propre langage machine, et donc son propre langage d'assemblage (l'exemple ci-dessus est pour le x866). 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. Tous les ordinateurs sont capables de faire les mêmes choses, ils peuvent les faire de manières différentes.

De plus, plusieurs groupes de mnémoniques ou de syntaxes de langage assembleur peuvent exister pour un seul ensemble d'instructions.

Lire la suite : http://fr.wikipedia.org/wiki/Assembleur