Je viens d’une époque où l’assembleur était le premier langage qu’on apprenait. Eh oui, j’ai adoré l’assembleur du Z80 et celui du 6800 ! Alors quand j’ai découvert le blog de Vincent, j’ai été scotché par la quantité et la qualité de son contenu…
Au sommaire :
Tout sur l’assembleur ARM du Raspberry Pi
Je vous propose de lire l’introduction de Vincent sur le blog et je pense que vous irez le visiter ensuite !
N’hésitez pas à revenir faire vos remarques dans les commentaires ci-dessous.
jeudi 19 octobre 2017
Introduction
Ce blog a été créé pour raconter mon expérience sur la programmation en assembleur avec le Raspberry pi et pour guider les personnes débutantes intéressées par l’assembleur ARM sur ce matériel.
J’ai acquis récemment un Rasperry modèle 1B (512MO de ram) et je me suis demandé ce que je pouvais en obtenir en matière de formation à la programmation. Connaissant déjà le langage C et des langages de haut niveau comme Java, l’apprentissage d’un nouveau langage comme Python ne me semblait pas intéressant. Par contre en étudiant les caractéristiques du processeur du Raspberry, je me rends compte qu’il s’agit d’un processeur de type RISC avec un jeu d’instruction réduit. Cela me changeait des processeurs Intel avec leurs centaines d’instructions Assembleur et en plus dans un environnement Windows.
Je décidais donc de me lancer dans la programmation en assembleur pour voir quelles étaient les limites de son utilisation sur un Raspberry dans un environnement LINUX. De plus conscient de la faible puissance du processeur et de la taille limitée de l’espace mémoire du Raspberry, je supposais que des programmes écrits dans ce langage seraient plus performants que des programmes écrits en langages de haut niveau.
Mais ce blog ne sera pas un cours formel sur l’assembleur ARM mais plutôt l’utilisation de celui-ci dans l’environnement Linux du Raspberry. Pour une bonne présentation des instructions de assembleur, je vous conseille (hélas en anglais) le site suivant : http://thinkingeek.com/arm-assembler-raspberry-pi/
Attention : apprendre l’assembleur ne sert que pour connaitre les principes de base du fonctionnement d’un processeur, pour des besoins de formation ou d’écriture d’algorithmes performants. Si vous voulez écrire des programmes complets rapidement et proches de la machine, je vous conseille plutôt d’utiliser le langage C .
Bonjour et merci pour ce lien.
Ayant été un fana de l’assembleur à la « belle-époque » des 80×6, c’est une belle surporise que celle-ci pour voir un peu du coté de l’ARM.
Bonne continuation.
Voilà qui me rappelle mes débuts il y a bien longtemps (dans une galaxie pas si lointaine). A l’époque il n’y avait pas de Raspberry Pi mais un Oric Atmos branché sur une bonne grosse télé. Et vas-y que je tape le code assembleur du 6502. Mais bon … je n’ai pas connu les cartes perforées !
Sur PC il y avait A86 de Eric Isacson c etait un macroassemleur qui compilait en une seule passe un programme .com que l on pouvait deboguer avec le debogueur symbolique D86 SUPER !
J attends toujours ca sur Raspberry Pi
Salut à tous.
Comme beaucoup d’ancien, mon premier assembleur a été le 6502 avec son contrôleur de port 6522.
Et oui, c’était fin des années 70, avec l’apparition de l’ITT 2020, qui est un copie de l’Apple II+.
Ensuite, jai fait de l’assembleur IBM360 qui était associé au cobol, sur gros système IBM.
Puis pour le plaisir, le z80, 6800, 68000. Par contre, je ne connais pas l’assembleur 8086.
Ca y est, je me suis mis à l’assembleur ARM de la raspberry.
J’ai découvert le blog de M. Vincent Leboulou qui nous fait part de son apprentissage et de ses découvertes.
Bravo pour le temps qu’il a consacré à son retour d’expérience.
En ce qui me concerne, je vais surtout utiliser l’assembleur en association du ‘C’ et du ‘C++’, pour résoudre quelques problèmes liés aux interfaces.
Comme par exemple, les GPIO, le SPI (Serial Peripheral Interface), I[sup]2[/sup]C ((Inter Integrated Circuit) …
@+
merci pour l’info et le blog 🙂
Bonjour,
effectivement c’est un super blog (tout comme Framboise314 d’ailleurs) néanmoins on ne peut malheureusement pas contacter l’auteur. En effet j’aurais aimé avoir des précisions sur les programmes BufferFrame notamment le programme frametest164.s ou j’ai quelques difficultés avec les variables et le graphisme. Sincères remerciements pour vos Blogs
Bien cordialement.