Introduction
Salutations à vous tous,
Je vous souhaite une magnifique bonne soirée en cette chaude nuit d'hiver parsemé d'étoile qui est en réalité les satellites de Monsieur Musk. Pour aujourd'hui, je commencerais avec une introduction au langage Assembly en parlant de son histoire, de ses utilisations et de ce qu'est ce que c'est. J'essayerais du mieux que je peux d'expliquer et de résumer, mais rappelez-vous, chers lecteurs, que je suis aussi en phase de découverte avec ce langage, donc n'ayez pas peur de commenter en bas pour me corriger ou pour offrir des critiques constructives. Alors, pour sans plus y tarder, allons-y.
C'est quoi Assembly?
La langue assembly, ou en français propre, le langage assembleur, est quelconques langages de plus bas niveau sous forme lisible pour les humains. Très souvent abrégée à ASM/asm et appelée alternativement comme un langage de programmation symbolique, une caractéristique principale qui est associée à celui-ci est le fait qu'il possède une forte correspondance, généralement 1:1, aux codes d'instruction machine de l'architecture d’ordinateur (computer architecture). Un exemple de ce ratio 1:1 chez un CPU est que chaque ligne de code représente une seule opération en ASM.
Je n'irais pas en profondeur au sujet de l'architecture des ordinateurs et donnerais seulement une courte explication. Si vous voulez en apprendre plus, vous pouvez aller ici et là (vous pouvez aussi ignorer cette section si vous savez déjà c'est quoi).
Architecture des Ordinateurs
Ça réfère à....
- La structure "end-to-end" du système d'un ordinateur!
- Et c'est cette structure qui aide à déterminer comment ses composantes interagissent entre eux-mêmes.
- Pourquoi? Pour exécuter le but de la machine, qui est de procéder des données!
- Et souvent, ceci est fait en évitant la mention de quelconques implémentations techniques.
- Bref, l'architecture des ordinateurs permet à un ordinateur de calculer, conserver et récupérer des informations.
Maintenant, si ce que j'ai expliqué est encore trop vague, alors une autre définition pour le langage assembleur est que celui-ci permet de simplifier les instructions qui seront envoyées au CPU d'un ordinateur. Ça aide donc les humains à ne pas compter les 1 et 0 manuellement.
Il y a plusieurs types de langages assembleurs, car chacun d'entre eux marche pour seulement une architecture spécifique de hardware. Par exemple, ARM pour les processeurs Apple et Raspberry Pi, X86 pour les processeurs Intel, et SASS pour les GPU hardwares de NVIDIA.
Son histoire
Le premier langage assembleur a été écrit par Kathleen Booth en 1947 pour l'APEC (All Purpose Electronic Computer).
Dans les prochaines années qui s'ensuivront, celui-ci évoluera et prendra plusieurs formats différents pour alimenter les super ordinateurs de ses temps. Un exemple serait l'IBM 1790 montré ici en bas.
Assembly restera le standard dans l'écriture de code jusqu'à l'apparition de Fortran, le premier langage de programmation de haut niveau au monde.

Ses utilisations
Ces jours-ci, le langage assembleur est utilisé pour la manipulation directe de hardware et pour aborder les problèmes de basse performances critiques.
Des exemples de ces hardware mentionnés seraient des systèmes embarqués de bas niveau, des pilotes périphériques et des systèmes en temps réel.
De nos temps, puisque assembly est le plus proche qu'un programmeur peut utiliser pour s'approcher d'un processeur, le potentiel d'optimisation de vitesse est le principal avantage que cette langue au-dessus des autres langues de programmation de haut niveau.
Il peut donc aussi être dit qu'assembly tourne autour de l'amélioration et l'optimisation de la performance et de l'efficacité d'un système ordinateur, mais aussi juste sur la programmation de hardware.
Voici des exemples où les langages assembleurs sont utilisés:
- SASS - Hardware GPU de NVIDIA


- Z80 Assembly - Pokémon Rouge et Vert
Conclusion
En bref, tout comme moi, j'espère que vous avez appris aujourd'hui des nouvelles informations au sujet des langages assembleurs avec cette petite introduction que j'ai faite. Je me suis plongé dans ce sujet, pensant que je ferais des recherches sur une relique du passé, mais étonnamment, encore une bonne partie des matériels de bases de nos équipements électroniques modernes sont toujours programmés avec des langues ASM! Il sera intéressant de voir dans mes prochaines recherches les fusions faites au sujet de ASM et d'autres langues de programmation haut-niveau comme C et comment ceux-ci ont affecté la fabrication des matériels informatiques modernes reliés à la programmation.
Je vous souhaite donc à tous une bonne soirée ou une bonne journée, au revoir et à la prochaine!
Sources:
[Assembly Language in 100 Seconds]
[Assembly Language 6th Edition - Kip R. Irvine]
[What Is Assembly And How Is It Used?]
[Low-Level programming language]
(Assembly language for students)
(What Is Computer Architecture? Components, Types, and Examples)
(What Is Assembly Language? Working, Features, and Advantages)
Commentaires