1 comentários

 
GN⁺ 2024-04-23
Opinião do Hacker News

Resumindo as várias opiniões dos comentários do Hacker News sobre como aprender linguagem assembly:

  • Para aprender o básico de assembly ARM de forma intuitiva, jogar o game online "OFRAK Tetris" pode ajudar. Os blocos são instruções de assembly ARM, e jogando dá para aprender rapidamente a ler disassembly.
  • Tendo apenas uma referência de instruções x86, é possível usar a sintaxe de inline assembler do compilador D para compilar expressões simples e aprender analisando o assembly gerado.
  • Também vale consultar livros como "Computer Architecture: A Quantitative Approach", "Getting Started with LLVM Core Libraries" e "The Architecture of Open Source Applications", além da documentação oficial, tutoriais e referências do LLVM.
  • Ler guias de otimização e manuais de arquitetura fornecidos pelos fabricantes de CPU, como o "Apple Silicon CPU Optimization Guide" da Apple ou os "Software Developer Manuals" da Intel, também ajuda.
  • Outra boa forma é colocar pequenos programas no Ghidra ou no Godbolt e observar qual assembly é gerado. É importante entender que o código gerado pelo compilador costuma ser bom mais por causa dos passes de otimização do que da escolha de instruções.
  • Primeiro, é importante ler os manuais de uma arquitetura específica, como PowerPC, x86 ou ARM, e depois compilar pequenos programas em C e analisar o disassembly para entender a correspondência entre o código e as instruções.
  • Também é útil consultar "Introduction to 64 Bit Assembly Programming for Linux and OS X" e a documentação de arquiteturas como ARMv7, ARMv8, RISC-V e x86. Analisar códigos de exemplo do RosettaCode ou do GitHub também ajuda.
  • Criar sua própria ISA com o jogo "Turing Complete" e resolver puzzles em assembly também é uma forma divertida.
  • Começar com um tutorial de NASM e depois consultar os manuais da Intel também é uma boa opção.
  • Revisar assembly e compiladores com o projeto "Nand2Tetris" também é recomendado.