ARM Montaj kodunun yazılması


20

Raspberry Pi'mi aldıktan sonra ARM montaj kodunu nasıl yazacağımı öğrenmek istediğime karar verdim. Sorum şu: Başlamak için neye ihtiyacım var? Zaten yüklü bir derleyici olduğunu varsayalım ama ne olduğunu bilmiyorum (gcc belki?). Herhangi bir yardım takdir!


İşte ARM meclisi hakkında başka (ücretsiz) bir kitap: yurichev.com/writings/RE_for_beginners-en.pdf
Dennis Yurichev

Yanıtlar:


19

Ne kadar montajcı yazmak istediğinize bağlıdır. C koduna gömülü küçük parçacıklar yazmak istiyorsanız gcc, gerçekten aradığınız şeyden çok. asmC direktifinin nasıl kullanılacağına ilişkin örnekler, aşağıdaki satır içi asm referansına bakın: ARM GCC Satır İçi Birleştirici Yemek Kitabı

Öte yandan, tam bir montajcı kullanmaktan daha iyi olacağınızdan daha küçük pasajlardan daha fazla yazmak istiyorsanız. Bu, ya olduğu gibi kullanılabilir olacaktır as, gasya da her ikisi (takma).

Ve son olarak ARM komut seti hakkında biraz bilgi edinmeniz gerekecek. Kullanışlı bir referans: ARM1176JZF-S Teknik Referans Kılavuzu .

NB Lütfen hangi RPi'nin sadece armv6 talimatlarını desteklediğini unutmayın - bu nedenle armv7'den hiçbir şey kullanmaya çalışmayın

İyi şanslar!! :)


4

Macerama ARM montaj kodu ile çok uzun zaman önce başladım ve işte kaynaklarım:

  • Cambridge Üniversitesi burada çok iyi bir eğitim seti yayınladı: Baking Pi . Kendi işletim sisteminiz için bir şablon, her öğretici için eksiksiz kod örnekleri ve kodunuzu nasıl oluşturacağınız ve çalıştıracağınıza ilişkin tüm talimatları içerir.
  • Ek olarak, bu iri kitap tüm temelleri kapsamalıdır: ARM Sistemi Geliştirici Kılavuzu .

3

Komut satırı arayüzü ile oldukça rahat olmama rağmen, GUI'nin rahatlığına dayanamadım. Bir süre önce, Raspberry Pi'de ARM montaj dili programları geliştirmek için CodeBlocks IDE'yi kullanabileceğimi keşfettim. Bu yüzden bir eğitim yazdım ve Mazidi ARM Meclisi kitap web sitesi için yazdığım Raspberry Pi meclisi programlama eğitimine ekledim:

http://www.microdigitaled.com/ARM/ARM_ASM_books.htm

Web sitesinde "Ahududu Pi GUI Kullanarak ARM Meclisi Programlama" linkine tıklayın.

Bu yardımcı olur umarım.


1

GCC varsayılan olarak yüklenir. Raspberry Pi için bu kadar yeniyseniz, ARM montajından daha kolay bir programlama diline bakmanızı tavsiye ederim. Montaj için herhangi bir IDE yoktur, bu nedenle bir metin editörü kullanmanız ve terminal aracılığıyla birleştirmeniz gerekir. Kullanım kolaylığı için Gedit'i tavsiye ederim. Montaj için sözdizimi vurgulamak rağmen github, özellikle shinyquagsire23'ın sayfasına gitmek zorunda kaldı. Çok güzel. Yardıma gelince, bulduğum en iyi kaynak Bruce Smith tarafından "Raspberry Pi Assembly Dili: Raspbian Beginners" dır. Amazon'da bulabilirsiniz. Montajı bulduğum en açık ve en basit yollardan biriyle anlatıyor.


1

Çalıştırılabilir örneklerle öğrenin

Çalışıyorum: https://github.com/cirosantilli/arm-assembly-cheat

Özellikleri:

  • aynı derleme QEMU kullanıcı modu olan bir Linux ana bilgisayarında çalıştırılabilir, böylece Pi'de yerel olmadan önce ana makinenizde daha hızlı şeyler deneyebilirsiniz
  • hem ARMv7 hem de ARMv8'i kapsar
  • hem ana bilgisayarda hem de yerelde iyi GDB kurulumu
  • , işlerin başarısız olduğu montaj hattı numarasını gösteren varsayımlar içeriyor
  • IO için C standart kütüphanesini kullanır, bu da onu teorik olarak OS'yi taşınabilir hale getirir ve printfvememcpy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.