Assembleur (Assembler)
Le langage assembleur est un langage de programmation de bas niveau (c’est-à-dire très proche du langage interne de la machine), qui permet de transmettre des instructions à un processeur. Il existe plusieurs types de syntaxe en fonction du processeur. Un ordinateur n’interprète que des instructions spécifiques en binaire* (soit une suite de 0 et de 1), les compilateurs* sont des programmes conçus pour convertir des programmes de langage évolué (ex. langage C) en langage machine correspondant à une architecture précise (exemple x86). Les instructions en langage machine sont codées et stockées dans la mémoire. Les commandes comprises par un processeur sont relativement simples : ce sont des opérations avec éventuellement des « arguments » supplémentaires (comme la source ou la destination de la donnée à manipuler). Toute action peut se résumer à des déplacements de données stockées en mémoire, et à des opérations mathématiques sur celles-ci. Le langage assembleur n’est qu’une représentation pour programmeur des instructions machines qui vont être exécutées pas le processeur. Il existe deux syntaxes majoritaires : AT&T et Intel. En pratique, le langage assembleur n’est utilisé que pour des portions de code critiques, pour exploiter des fonctions atypiques du processeur, ou pour effectuer une rétro ingénierie d’un code compilé. Voir Compiler.