Belajar Program di Majelis - Sumber Daya Berguna [ditutup]

10

Mengikuti dari utas sebelumnya, itu membuat saya tertarik untuk belajar sedikit tentang pemrograman Majelis. Bukan karena ingin memprogram aplikasi yang berguna, hanya untuk merasakan pemrograman tingkat rendah untuk lebih memahami apa yang terjadi.

Adakah yang bisa merekomendasikan buku atau sumber daring apa pun untuk pemula?

Terima kasih.

Darren Young
sumber
Buku karya Dr. Paul Carter ini cukup bagus untuk x86 ASM.
jonescb

Jawaban:

5

Buku yang Direkomendasikan: Seni Pemrograman Bahasa Majelis .

Saya juga menyukai situs ini . Pengantar yang bagus untuk pemrograman perakitan! Saya menggunakan situs ini sebagai referensi saat belajar untuk kursus Mikroprosesor dan Mikrokontroler saya.

ykombinator
sumber
Luar biasa ... terima kasih. Karena ketertarikan, seberapa intuitif menurut Anda cara mempelajarinya dibandingkan dengan bahasa modern pada umumnya? Sejarah saya adalah 6 bulan c # (di industri) dan sekitar waktu yang sama C ++ (di kamar saya :))
Darren Young
1
Saya menemukan pemrograman Assembly dalam kursus saya (saya masih mahasiswa), dan seperti yang Anda katakan dalam pertanyaan Anda, sangat membantu dalam mengetahui bagaimana sistem embedded bekerja dan semuanya. Namun, dibandingkan dengan bahasa tingkat tinggi (modern seperti yang Anda katakan), saya merasa tidak banyak berguna. Anda tahu, tidak akan pernah menggunakannya di bidang saya - pengembangan web. :)
ykombinator
2

Apakah ini latihan akademis, atau Anda bermaksud menggunakan bahasa majelis yang Anda pelajari? Ini adalah hal yang cukup khusus, hari ini. Optimalisasi kompiler telah menjadi sangat baik, bahkan sesuatu seperti hard disk drive kinerja tinggi biasanya akan memiliki sekitar 1% dari basis kode yang ditulis dalam assembler. Turun rantai makanan ke 4bit atau prosesor 8bit Anda akan melihat lebih banyak bahasa assembly yang digunakan.

Jika Anda benar-benar ingin mencoba bahasa assembly, pilih prosesor yang memiliki set instruksi yang bagus. Saya adalah mantan karyawan ARM jadi saya mungkin bias, tetapi saya menemukan bahwa set instruksi ARM sangat mudah dipelajari - saya dapat menulis filter FIR yang efisien dalam asm pada hari ketiga saya di perusahaan. Mitra semikonduktor ARM mengirimkan sekitar satu miliar ARM core per kuartal belakangan ini, sehingga cukup mudah untuk menemukan perusahaan yang bersedia menggunakan keahlian ASM ARM Anda.

Ada banyak papan eva ARM tersedia untuk sekitar $ 50 untuk mencoba kode Anda - sepertinya ARM Cortex M3 akan menjadi sangat populer. Ini menggunakan set instruksi Thumb2 ARM, yang sedikit lebih tidak jelas daripada kode ARM32 biasa, tetapi masih cukup mudah, dan sangat kuat.

Papan kecil ini terlihat sangat keren, untuk 80 euro: http://www.olimex.com/dev/stm32-103stk.html

geekbrit
sumber
Ini murni akademis / belajar mandiri. Saya ingin lebih memahami manajemen memori tingkat rendah serta bahasa tingkat yang lebih tinggi.
Darren Young
1

Pada dasarnya, dalam arti pemrograman perakitan, Anda harus mengetahui arsitektur yang mendasari pertama, kemudian bahasa koresponden, misalnya, dengan pengontrol mikro PIC, Anda dapat menggunakan kompiler yang disediakan dan bahasa. Saya menggunakan situs ini untuk merujuk ke tutorial micro-controller PIC.

Abimaran Kugathasan
sumber
1

Saya selalu menemukan bagian tersulit adalah hello world, yang biasanya hanya fungsi assem sepele yang dipanggil dari langle yang lebih tinggi seperti menambahkan dua angka. Setelah Anda melewati rintangan itu, itu hanya soal menambahkan instruksi dan psuedo-ops (seperti mendefinisikan data) ke repertoar Anda.

Saya akan geekbrit kedua, meskipun saya belum pernah menggunakan ARM. Arsitektur minimal seperti itu tidak hanya akan lebih mudah, tetapi mungkin juga paling dekat dengan memiliki yang sah - bukan hanya tujuan didaktik.

Omega Centauri
sumber
0

Saya memiliki set instruksi, assembler, dan simulator, dengan beberapa pelajaran yang dibuat hanya untuk tujuan ini. Saya belum memiliki umpan balik tentang seberapa baik atau buruk yang saya lakukan tetapi di luar sana, berikan 15 menit atau setengah jam untuk melihat apakah itu mengajarkan Anda sesuatu. http://github.com/dwelch67/lsasim Setelah itu saya memiliki beberapa simulator set instruksi umum yang dapat Anda coba juga, sederhana, tanpa embel-embel, harus dijalankan di mana pun Anda memiliki kompiler C, dll.

old_timer
sumber