Si se resumen las diversas opiniones en los comentarios de Hacker News sobre cómo aprender lenguaje ensamblador, serían las siguientes:
Para aprender de forma intuitiva los fundamentos de ensamblador ARM, ayuda probar el juego en línea "OFRAK Tetris". Los bloques son instrucciones de ensamblador ARM, y mientras juegas puedes aprender rápidamente a leer desensamblados.
Con solo una referencia de instrucciones x86, se puede aprender compilando expresiones simples con la sintaxis del ensamblador en línea del compilador D y analizando el ensamblador generado.
También es buena idea consultar libros como "Computer Architecture: A Quantitative Approach", "Getting Started with LLVM Core Libraries" y "The Architecture of Open Source Applications", además de la documentación, tutoriales y referencias oficiales de LLVM.
Leer guías de optimización o manuales de arquitectura proporcionados por fabricantes de CPU, como "Apple Silicon CPU Optimization Guide" de Apple o los "Software Developer Manuals" de Intel, también ayuda.
Otra buena forma es poner programas pequeños en Ghidra o Godbolt y observar qué ensamblador se genera. Hay que entender que el código que produce el compilador suele ser bueno más por los pases de optimización que por la selección de instrucciones.
Primero es importante leer el manual de una arquitectura específica, como PowerPC, x86 o ARM, y luego compilar pequeños programas en C para analizar el desensamblado y entender la relación entre el código y las instrucciones.
También conviene consultar "Introduction to 64 Bit Assembly Programming for Linux and OS X" o documentos de arquitectura de ARMv7, ARMv8, RISC-V y x86. Analizar código de ejemplo en RosettaCode o GitHub también ayuda.
También puede ser una forma divertida usar el juego "Turing Complete" para crear directamente una ISA y resolver rompecabezas con ensamblador.
Empezar con un tutorial de NASM y luego consultar los manuales de Intel también es recomendable.
También se recomienda repasar ensamblador y compiladores con el proyecto "Nand2Tetris".
1 comentarios
Opinión de Hacker News
Si se resumen las diversas opiniones en los comentarios de Hacker News sobre cómo aprender lenguaje ensamblador, serían las siguientes: