1件のコメント

 
GN⁺ 2024-04-23
Hacker Newsの意見

Hacker Newsのコメントでアセンブリ言語の学び方について挙がっていたさまざまな意見を要約すると、次のとおり。

  • ARMアセンブリの基礎を直感的に学ぶには、オンラインゲーム "OFRAK Tetris" を遊んでみるのが役立つ。ブロックがARMアセンブリ命令になっており、ゲームを進めながら素早く逆アセンブルを読む方法を身につけられる。
  • x86命令リファレンスだけでも、Dコンパイラのインラインアセンブラ構文を使って簡単な式をコンパイルし、生成されたアセンブリを分析しながら学べる。
  • "Computer Architecture: A Quantitative Approach"、"Getting Started with LLVM Core Libraries"、"The Architecture of Open Source Applications" といった書籍や、LLVM公式ドキュメント、チュートリアル、リファレンスを参照するのもよい。
  • Appleの "Apple Silicon CPU Optimization Guide" やIntelの "Software Developer Manuals" のように、CPUメーカーが提供する最適化ガイドやアーキテクチャマニュアルを読むのも役立つ。
  • GhidraやGodboltに小さなプログラムを入れて、どのようなアセンブリが出力されるか観察するのもよい方法。コンパイラが生成するコードは、命令選択そのものより最適化パスの効果で良くなっていることを理解しておく必要がある。
  • まずPowerPC、x86、ARMなど特定アーキテクチャのマニュアルを読み、その後に小さなCプログラムをコンパイルして逆アセンブルを分析しながら、コードと命令の対応関係を理解することが重要。
  • "Introduction to 64 Bit Assembly Programming for Linux and OS X" や、ARMv7、ARMv8、RISC-V、x86のアーキテクチャ文書を参考にするのもよい。RosettaCodeやGitHubのサンプルコードを分析するのも役立つ。
  • "Turing Complete" というゲームを通じて、自分でISAを作り、アセンブリでパズルを解いてみるのも楽しい方法。
  • NASMチュートリアルから始めて、その後Intelマニュアルを参照するのもよい。
  • "Nand2Tetris" プロジェクトでアセンブリとコンパイラを復習してみるのもおすすめ。