Menulis kode Majelis ARM


20

Setelah mendapatkan Raspberry Pi saya, saya memutuskan bahwa saya ingin belajar cara menulis kode perakitan ARM. Pertanyaan saya adalah, apa yang harus saya mulai? Saya berasumsi bahwa sudah ada kompiler yang diinstal tetapi saya tidak tahu apa itu (gcc mungkin?). Bantuan apa pun dihargai!


Berikut ini adalah buku (gratis) lain tentang perakitan ARM: yurichev.com/writings/RE_for_beginners-en.pdf
Dennis Yurichev

Jawaban:


19

Tergantung pada seberapa banyak assembler yang ingin Anda tulis. Jika Anda ingin menulis hanya potongan kecil yang disematkan dalam kode C, daripada gccyang memang Anda cari. Contoh cara menggunakan asmarahan dalam C lihat referensi asm asline di: ARM GCC Inline Assembler Cookbook

Jika di sisi lain Anda ingin menulis lebih dari sekadar potongan kecil daripada Anda akan lebih baik menggunakan assembler penuh. Ini akan tersedia sebagai salah satu as, gasatau keduanya (alias).

Dan akhirnya Anda harus belajar sedikit tentang set instruksi ARM. Ada referensi yang berguna di: ARM1176JZF-S Manual Referensi Teknis .

NB Harap diingat bahwa RPi hanya mendukung instruksi armv6 - jadi jangan coba-coba menggunakan apa pun dari armv7

Semoga berhasil!! :)


4

Saya memulai petualangan saya dengan kode perakitan ARM belum lama ini dan inilah sumber daya saya:

  • Universitas Cambridge menerbitkan serangkaian tutorial yang sangat baik di sini: Baking Pi . Ini termasuk template untuk OS Anda sendiri, contoh kode lengkap untuk setiap tutorial dan semua instruksi tentang cara membangun dan menjalankan kode Anda.
  • Selain itu, buku besar ini harus mencakup semua pangkalan: Panduan Pengembang Sistem ARM .

3

Meskipun saya cukup nyaman dengan antarmuka baris perintah, saya tidak bisa menahan kenyamanan GUI. Beberapa waktu yang lalu, saya menemukan bahwa saya dapat menggunakan IDE CodeBlocks untuk mengembangkan program bahasa assembly ARM di Raspberry Pi. Jadi saya menulis tutorial dan menambahkannya ke tutorial pemrograman perakitan Raspberry Pi yang saya tulis untuk situs web buku Majelis Mazidi:

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

Di situs web, klik tautan "Pemrograman Majelis ARM Menggunakan Raspberry Pi GUI."

Semoga ini membantu.


1

GCC diinstal secara default. Jika Anda baru mengenal Raspberry Pi, saya sarankan Anda melihat bahasa pemrograman yang lebih mudah daripada perakitan ARM. Tidak ada IDE untuk perakitan sehingga Anda harus menggunakan editor teks dan merakitnya melalui terminal. Saya merekomendasikan Gedit untuk kemudahan penggunaan. Meskipun untuk mendapatkan highlight sintaksis untuk assembly, saya harus pergi ke github, khususnya halaman shinyquagsire23. Itu sangat cantik. Adapun bantuan Sumber terbaik yang saya temukan adalah "Raspberry Pi Assembly Language: Raspbian Beginners" oleh Bruce Smith. Anda dapat menemukannya di Amazon. Dia menjelaskan pertemuan dengan salah satu cara paling jelas dan paling sederhana yang saya temukan.


1

Pelajari dengan contoh runnable

Saya sedang mengerjakan: https://github.com/cirosantilli/arm-assembly-cheat

Fitur:

  • perakitan yang sama persis dapat dijalankan pada host Linux dengan mode pengguna QEMU, sehingga Anda dapat mencoba berbagai hal lebih cepat pada host Anda sebelum menjadi asli pada Pi
  • mencakup ARMv7 dan ARMv8
  • baik pengaturan GDB di luar kotak, baik di host dan asli
  • memiliki menegaskan yang menunjukkan nomor jalur perakitan di mana hal-hal gagal
  • menggunakan pustaka standar C untuk IO, yang membuatnya OS portable dalam teori, dan memungkinkan untuk dengan mudah menggunakan kembali barang seperti printfdanmemcpy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.