1 komentar

 
GN⁺ 2024-04-23
Opini Hacker News

Ringkasan berbagai pendapat di komentar Hacker News tentang cara belajar bahasa assembly adalah sebagai berikut:

  • Untuk mempelajari dasar-dasar assembly ARM secara intuitif, memainkan game online "OFRAK Tetris" bisa membantu. Blok-bloknya adalah instruksi assembly ARM, dan sambil bermain Anda bisa cepat belajar cara membaca disassembly.
  • Dengan hanya berbekal referensi instruksi x86, Anda bisa belajar dengan memanfaatkan sintaks inline assembler milik compiler D untuk mengompilasi ekspresi sederhana lalu menganalisis assembly yang dihasilkan.
  • Buku seperti "Computer Architecture: A Quantitative Approach", "Getting Started with LLVM Core Libraries", dan "The Architecture of Open Source Applications", serta dokumentasi resmi, tutorial, dan referensi LLVM juga layak dijadikan rujukan.
  • Membaca panduan optimasi atau manual arsitektur yang disediakan produsen CPU, seperti "Apple Silicon CPU Optimization Guide" dari Apple atau "Software Developer Manuals" dari Intel, juga bermanfaat.
  • Mencoba memasukkan program kecil ke Ghidra atau Godbolt lalu mengamati assembly yang dihasilkan juga merupakan cara yang baik. Perlu dipahami bahwa kode yang dihasilkan compiler biasanya bagus bukan karena pemilihan instruksi, melainkan karena optimization pass.
  • Penting untuk terlebih dahulu membaca manual arsitektur tertentu seperti PowerPC, x86, atau ARM, lalu mengompilasi program C kecil dan menganalisis disassembly-nya untuk memahami hubungan antara kode dan instruksi.
  • "Introduction to 64 Bit Assembly Programming for Linux and OS X" maupun dokumen arsitektur ARMv7, ARMv8, RISC-V, dan x86 juga bisa dijadikan referensi. Menganalisis kode contoh di RosettaCode atau GitHub juga membantu.
  • Mencoba game "Turing Complete" untuk membuat ISA sendiri dan memecahkan puzzle dengan assembly juga merupakan cara yang menyenangkan.
  • Memulai dengan tutorial NASM lalu merujuk ke manual Intel juga merupakan pilihan yang baik.
  • Meninjau kembali assembly dan compiler lewat proyek "Nand2Tetris" juga direkomendasikan.