หากอยากเรียนพื้นฐานของ ARM assembly แบบเข้าใจได้ง่าย การเล่นเกมออนไลน์ "OFRAK Tetris" จะช่วยได้ บล็อกต่าง ๆ คือคำสั่ง ARM assembly และระหว่างเล่นก็จะได้ฝึกอ่าน disassembly อย่างรวดเร็ว
หากมีแค่ x86 instruction reference ก็สามารถใช้ไวยากรณ์ inline assembler ของ D compiler เพื่อคอมไพล์นิพจน์ง่าย ๆ แล้ววิเคราะห์ assembly ที่สร้างขึ้นเพื่อเรียนรู้ได้
หนังสืออย่าง "Computer Architecture: A Quantitative Approach", "Getting Started with LLVM Core Libraries", "The Architecture of Open Source Applications" รวมถึงเอกสารทางการ, tutorial และ reference ของ LLVM ก็เป็นแหล่งอ้างอิงที่ดี
การอ่าน optimization guide หรือ architecture manual ที่ผู้ผลิต CPU จัดทำไว้ เช่น "Apple Silicon CPU Optimization Guide" ของ Apple หรือ "Software Developer Manuals" ของ Intel ก็ช่วยได้
สิ่งสำคัญคือควรเริ่มจากการอ่าน manual ของสถาปัตยกรรมใดสถาปัตยกรรมหนึ่ง เช่น PowerPC, x86, ARM แล้วคอมไพล์โปรแกรม C ขนาดเล็กและวิเคราะห์ disassembly เพื่อทำความเข้าใจความสัมพันธ์ระหว่างโค้ดกับคำสั่ง
การอ้างอิงเอกสารของสถาปัตยกรรม "Introduction to 64 Bit Assembly Programming for Linux and OS X", ARMv7, ARMv8, RISC-V, x86 ก็เป็นแนวทางที่ดี และการวิเคราะห์โค้ดตัวอย่างจาก RosettaCode หรือ GitHub ก็ช่วยได้เช่นกัน
การลองสร้าง ISA ด้วยตัวเองผ่านเกม "Turing Complete" และแก้ปริศนาด้วย assembly ก็เป็นวิธีที่สนุก
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
หากสรุปความคิดเห็นต่าง ๆ ในคอมเมนต์ของ Hacker News เกี่ยวกับวิธีเรียนภาษาแอสเซมบลี จะได้ดังนี้: