banner

Blog

Jul 27, 2023

Qui a peur du langage d’assemblage ?

Cette semaine, [Al Williams] a écrit un excellent article de réflexion sur la question de savoir si cela valait ou non la peine d'apprendre un langage assembleur, et quand. Les commentaires ont débordé et nous sommes surpris qu'autant de personnes soient fondamentalement d'accord avec nous : oui. Bien sûr, c'est une foule de Hackaday, mais je ne m'attendais toujours pas à un élan d'amour pour la plus primitive des langues.

Cependant, le langage d'assemblage n'est pas vraiment un langage. Chaque puce parle son propre dialecte. Bien sûr, il existe des similitudes : chaque processeur a une fonction d’ajout, n’est-ce pas ? Mais presque aucun processeur n'a un seul ajout : il existe des variantes avec et sans report, stockage et lecture à partir de registres de travail ou de RAM. Et dès que l’on commence à parler d’accès à la mémoire, direct ou indirect, les architectures individuelles des puces nécessitent des langages d’assemblage différents.

Néanmoins, même si les manières particulières dont les processeurs font ce qu'ils font peuvent être incompatibles d'un point de vue strictement linguistique, elles sont beaucoup plus similaires en termes d'idiomes de programmation que vous apprendrez en cours de route. Tout comme l'apprentissage d'un ensemble d'algorithmes solides vous aidera quel que soit le langage de niveau supérieur que vous utilisez, l'apprentissage des concepts derrière la création de boucles et de structures de mémoire simples à partir d'un langage d'assemblage brut vous sera utile, quel que soit le processeur que vous choisissez.

Je n'ai écrit que du langage assembleur pour une poignée de processeurs, et pas beaucoup, mais j'ai trouvé que les microcontrôleurs étaient les plus conviviaux. Donc, si vous voulez plonger vos orteils dans cette eau, procurez-vous un AVR ou un MSP430. Ou peut-être même la nouvelle nouveauté : un RISC-V. Vous trouverez les jeux d'instructions suffisamment petits pour que vous deviez effectuer la plupart du travail vous-même. Et c’est après tout l’intérêt de l’apprentissage d’un langage assembleur : apprendre à penser comme le silicium. Si vous le considérez comme un puzzle amusant à résoudre, vous apprécierez probablement même l'expérience.

La question initiale de [Al] était de savoir quand apprendre un langage assembleur : avant ou après un langage de niveau supérieur. Pour 99 % de nos lecteurs, je dirais que la réponse est maintenant.

PARTAGER