Qu'est-ce que le langage d'assemblage ?

L'ENIAC fut le premier ordinateur électronique universel. Il a été construit à l'Université de Pennsylvanie et achevé en 1945. Snyder était l'une des six femmes qui l'ont programmé à la main.
Avant des machines comme l'ENIAC, le mot computer désignait une personne qui effectuait des calculs à la main, et les six femmes qui ont programmé l'ENIAC avaient été embauchées pour ce travail. Pour programmer la machine, elles la recâblaient : elles branchaient des câbles et réglaient des interrupteurs chaque fois que le problème changeait. Ce recâblage est la raison historique de l'existence du langage assembleur. En quelques années, des ingénieurs en Europe et en Amérique ont commencé à remplacer les fils et les réglages d'interrupteurs par de courts codes écrits représentant des instructions, afin qu'une personne puisse lire et modifier un programme sans toucher à un connecteur.
D'abord, un CPU (unité centrale de traitement) est la puce au centre de votre ordinateur, et il fait un seul travail : il exécute une longue liste de petites commandes appelées instructions, l'une après l'autre, à raison de milliards par seconde. Chaque instruction est simple en soi, comme additionner deux nombres, déplacer une valeur ou sauter à un autre endroit.
L'assembleur est la forme des instructions qu'un CPU exécute qu'une personne peut lire. Chaque ligne correspond (presque) à une instruction machine. Vous n'avez ni boucles, ni objets, ni chaînes de caractères. Vous déplacez des nombres entre des registres, de petits emplacements de stockage à l'intérieur du processeur, et la mémoire.

L'EDSAC exécutait les Initial Orders de David Wheeler, l'un des premiers programmes qui traduisaient des instructions écrites en code machine.
Chaque processeur a besoin d'un programme qui lit des instructions écrites et produit les bits bruts que le matériel exécute : un assembleur. L'assembleur de cette page cible un seul jeu d'instructions.
Ce simulateur utilise RISC-V, un jeu d'instructions moderne utilisé dans de vraies puces et enseigné dans les universités. Ce que vous apprenez ici s'applique directement au matériel.

RISC-V est une architecture de jeu d'instructions ouverte. N'importe qui peut implémenter sa spécification publiée dans du matériel, et aucun frais ni autorisation n'est requis.
Toute conception de jeu d'instructions doit décider quelle quantité de travail une seule instruction effectue. Les puces CISC (Complex Instruction Set Computer), y compris l'architecture x86 présente dans la plupart des ordinateurs de bureau et portables, confient une grande quantité de travail à chaque instruction. Une instruction peut lire une valeur en mémoire, effectuer un calcul arithmétique dessus et stocker le résultat, le tout en une seule étape. RISC-V suit la conception défendue par Patterson & Ditzel, 1980 : chaque instruction effectue une seule opération simple, et tout comportement complexe est produit en combinant un grand nombre de ces instructions.
RISC signifie Reduced Instruction Set Computer. Le matériel est conçu pour exécuter un petit groupe d'instructions simples à grande vitesse. Un comportement complexe est produit en combinant ces étapes simples et rapides.
L'assembleur de Kathleen Booth pour l'ARC (Booth, 1947) et les Initial Orders de David Wheeler pour l'EDSAC (Wilkes, Wheeler & Gill, 1951) comptent parmi les tout premiers assembleurs fonctionnels, et les historiens continuent de débattre lequel est venu en premier. RISC-V, le jeu d'instructions que ce simulateur exécute, définit une petite liste ouverte d'instructions que n'importe qui peut implémenter (Asanović & Patterson, 2014). Chaque leçon à partir de ce point enseigne directement ce jeu d'instructions.
Références
- [1]IEEE Computer Society. Women of ENIAC.
- [2]Booth, K. General Considerations in the Design of an All Purpose Electronic Digital Computer. 1947.
- [3]Wilkes, M. V., Wheeler, D. J., Gill, S. The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, 1951.
- [4]Patterson, D. A., Ditzel, D. R. The Case for the Reduced Instruction Set Computer. ACM SIGARCH Computer Architecture News, 1980.
- [5]Asanović, K., Patterson, D. A. Instruction Sets Should Be Free: The Case For RISC-V. UCB/EECS-2014-146, 2014.
- [6]Glen Beck and Betty Snyder program the ENIAC, building 328, Ballistic Research Laboratory. U.S. Army photo, public domain.
- [7]Maurice Wilkes examining a mercury delay line during the construction of EDSAC. Computer Laboratory, University of Cambridge, CC BY 2.0.
- [8]Yunsup Lee holding a RISC-V prototype chip, 2013. CC0.
