4 puan yazan GN⁺ 2024-04-23 | 1 yorum | WhatsApp'ta paylaş

1 yorum

 
GN⁺ 2024-04-23
Hacker News görüşleri

Hacker News yorumlarındaki assembly dilini öğrenme yöntemlerine dair çeşitli görüşlerin özeti şöyle:

  • ARM assembly temellerini sezgisel biçimde öğrenmek için çevrimiçi oyun "OFRAK Tetris"i denemek faydalı olabilir. Bloklar ARM assembly komutlarıdır ve oyun oynarken disassembly’yi hızlı okuma becerisi kazanılabilir.
  • Yalnızca x86 komut referansı olsa bile, D derleyicisinin inline assembler sözdizimini kullanarak basit ifadeleri derleyip üretilen assembly’yi analiz ederek öğrenmek mümkündür.
  • "Computer Architecture: A Quantitative Approach", "Getting Started with LLVM Core Libraries", "The Architecture of Open Source Applications" gibi kitaplarla birlikte LLVM’in resmi belgeleri, eğitimleri ve referanslarına bakmak da iyidir.
  • Apple’ın "Apple Silicon CPU Optimization Guide" ya da Intel’in "Software Developer Manuals" belgeleri gibi CPU üreticilerinin sunduğu optimizasyon rehberlerini ve mimari kılavuzlarını okumak faydalıdır.
  • Ghidra veya Godbolt’a küçük programlar verip hangi assembly çıktısının üretildiğini gözlemlemek de iyi bir yöntemdir. Derleyicinin ürettiği kodun, komut seçimi kadar optimizasyon geçişleri nedeniyle de iyi olduğunu anlamak gerekir.
  • Önce PowerPC, x86, ARM gibi belirli bir mimarinin kılavuzlarını okuyup ardından küçük C programları derleyerek disassembly’yi analiz etmek, kod ile komutlar arasındaki ilişkiyi anlamak açısından önemlidir.
  • "Introduction to 64 Bit Assembly Programming for Linux and OS X" ile ARMv7, ARMv8, RISC-V ve x86 mimari belgelerine bakmak da yararlı olabilir. RosettaCode veya GitHub’daki örnek kodları analiz etmek de yardımcıdır.
  • "Turing Complete" oyunu aracılığıyla doğrudan bir ISA tasarlayıp assembly ile bulmacalar çözmek de eğlenceli bir yöntemdir.
  • NASM eğitimleriyle başlayıp ardından Intel kılavuzlarına başvurmak da iyi bir seçenektir.
  • "Nand2Tetris" projesiyle assembly ve derleyici konularını yeniden gözden geçirmek de önerilir.