1 commentaires

 
GN⁺ 2024-04-23
Discussion Hacker News

Voici un résumé des différents avis exprimés dans les commentaires de Hacker News sur la meilleure façon d’apprendre l’assembleur :

  • Pour acquérir intuitivement les bases de l’assembleur ARM, il peut être utile d’essayer le jeu en ligne "OFRAK Tetris". Les blocs y représentent des instructions d’assembleur ARM, et le jeu permet d’apprendre rapidement à lire du désassemblage.
  • Avec une simple référence des instructions x86, on peut compiler de petites expressions en utilisant la syntaxe d’assembleur inline du compilateur D, puis apprendre en analysant l’assembleur généré.
  • Il peut aussi être utile de consulter des ouvrages comme "Computer Architecture: A Quantitative Approach", "Getting Started with LLVM Core Libraries" et "The Architecture of Open Source Applications", ainsi que la documentation officielle, les tutoriels et les références de LLVM.
  • Lire des guides d’optimisation ou des manuels d’architecture fournis par les fabricants de CPU, comme le "Apple Silicon CPU Optimization Guide" d’Apple ou les "Software Developer Manuals" d’Intel, peut également aider.
  • Une autre bonne méthode consiste à soumettre de petits programmes à Ghidra ou Godbolt pour observer l’assembleur produit. Il faut comprendre que la qualité du code généré par le compilateur tient davantage aux passes d’optimisation qu’au simple choix des instructions.
  • Il est important de commencer par lire les manuels d’une architecture donnée, comme PowerPC, x86 ou ARM, puis de compiler de petits programmes en C afin d’analyser le désassemblage et de comprendre la correspondance entre le code source et les instructions.
  • On peut aussi se référer à "Introduction to 64 Bit Assembly Programming for Linux and OS X" ou à la documentation des architectures ARMv7, ARMv8, RISC-V et x86. Analyser des exemples de code sur RosettaCode ou GitHub peut aussi être utile.
  • Le jeu "Turing Complete", qui permet de concevoir soi-même une ISA et de résoudre des puzzles en assembleur, est également une approche amusante.
  • Commencer par un tutoriel NASM, puis se référer aux manuels d’Intel, est aussi une bonne option.
  • Le projet "Nand2Tetris" est également recommandé pour revoir l’assembleur et les compilateurs.