Üniversitede 68HC11 öğrendim. Çalışmaları çok basittir, ancak dürüst olmak gerekirse düşük güçlü mikro denetleyicilerin çoğu benzer olacaktır (AVR, 8051, PIC, MSP430). Mikrodenetleyiciler için ASM programlamasına karmaşıklık katacak en büyük şey, desteklenen bellek adresleme modlarının sayısı ve türüdür . İlk başta daha yüksek teknoloji ürünü ARM işlemciler gibi daha karmaşık cihazlardan kaçınmalısınız.
Muhtemelen MSP430'u iyi bir başlangıç noktası olarak tavsiye ederim. Belki C'de bir program yazın ve çeşitli fonksiyonları satır içi montaj ile değiştirerek öğrenin. Basit başlayın, x + y = z vb.
Bir işlevi veya algoritmayı derleme ile değiştirdikten sonra, nasıl kodladığınızı ve C derleyicisinin ürettiklerini karşılaştırın ve karşılaştırın. Bu muhtemelen montajı öğrenmenin daha iyi yollarından biridir ve aynı zamanda bir derleyicinin gömülü bir programcı olarak inanılmaz derecede değerli olduğunu nasıl çalıştığını öğrenir. Öncelikle C derleyicisindeki optimizasyonları kapattığınızdan emin olun, aksi takdirde derleyicinin oluşturduğu kodla karıştırılabilirsiniz. Yavaş yavaş optimizasyonları açın ve derleyicinin ne yaptığını not edin.
RISC ve CISC
RISC, 'Azaltılmış Komut Seti Hesaplama' anlamına gelir, belirli bir komut setini değil, yalnızca CPU'nun minimum komut setine sahip olduğunu söyleyen bir tasarım stratejisini ifade eder. Her biri temel bir şey yapan birkaç talimat. 'RISC olmak' için gerekenlerin kesin bir teknik tanımı değildir. Öte yandan CISC mimarilerinin birçok talimatı var ama her biri daha fazlasını yapıyor.
RISC'nin amaçlanan avantajları, CPU tasarımınızın daha az transistöre ihtiyaç duymasıdır, bu da daha az güç kullanımı (mikrodenetleyiciler için büyük), daha ucuz yapılması ve daha yüksek performansa neden olan daha yüksek saat hızları anlamına gelir. Daha düşük güç kullanımı ve daha ucuz üretim genellikle doğrudur, CISC mimarilerindeki tasarım iyileştirmelerinin sonucu olarak daha yüksek performans hedefe ulaşamamıştır.
Hemen hemen tüm CPU çekirdekleri RISC veya 'orta yol' tasarımlarıdır. En ünlü (veya rezil) CISC mimarisiyle bile, x86. Modern x86 CPU'lar, R86C gibi dahili olarak RISC benzeri çekirdeklerdir ve ön uçta cıvatalı bir kod çözücü ile x86 talimatlarını birden çok RISC benzeri talimatlara böler. Bence Intel bunlara 'mikro-op' diyor.
Hangi (RISC vs CISC) montajda öğrenmesi daha kolay olduğu için, sanırım bir fırlatma. RISC komut setiyle bir şey yapmak genellikle aynı şeyi bir CISC komut setiyle yapmaktan daha fazla montaj hattı gerektirir. Öte yandan, CISC talimat setlerinin daha fazla sayıda mevcut talimat nedeniyle öğrenilmesi daha karmaşıktır.
CISC'nin kötü bir isim almasının çoğu nedeni, x86'nın en yaygın örnek olması ve üzerinde çalışılması gereken bir karışıklık olmasıdır. Bence bu çoğunlukla x86 komutlarının çok eski olması ve geriye dönük uyumluluğu korurken yarım düzine veya daha fazla kez genişletilmesinin bir sonucu olduğunu düşünüyorum. 4.5Ghz core i7'niz bile 286 modunda çalışabilir (ve önyüklemede çalışır).
ARM'nin bir RISC mimarisi olmasına gelince, bunu orta derecede tartışmalı olarak değerlendiririm. Kesinlikle bir yük deposu mimarisi. Temel talimat seti RISC gibidir, ancak son revizyonlarda talimat seti biraz daha kişisel olarak RISC ve CISC arasında bir orta yol olarak değerlendireceğim noktaya kadar büyüdü. Ayarlanan başparmak talimatları gerçekten de ARM talimat setlerinin en `` RİSKİ '' dir.