Bahasa Majelis: Cara Belajar Memprogram Kode Hari Ini

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


Bahasa rakitan adalah bahasa pemrograman tingkat sangat rendah yang memiliki korespondensi 1-ke-1 dengan kode mesin – serangkaian instruksi biner yang memindahkan nilai masuk dan keluar dari register dalam CPU (atau mikroprosesor lainnya).

pengantar

Mikroprosesor adalah kalkulator mekanis. Ini memiliki sejumlah register bernama, yang seperti memegang pena untuk angka. Ini menerima instruksi dalam bentuk kode mesin, yang diwakili oleh serangkaian bit biner (1s dan 0s). Sebagai contoh, ini adalah sederetan kode mesin:

10110000 01100001

Beberapa bit pertama (10110) adalah instruksi untuk menyalin nilai ke dalam register. Tiga digit berikutnya (000) mengidentifikasi register yang nilainya akan disalin. Sisanya (01100001) adalah nilai yang akan disalin.

Tentu saja 10110 tidak ada artinya, dan komputer tidak “tahu” bahwa itu berarti “menyalin nilainya.” Prosesor dirancang sedemikian rupa sehingga rangkaian impuls listrik yang diwakili oleh 10110 (on-off-on-on-off) menyebabkan hasil yang diinginkan. Ini adalah bagian dari apa yang dimaksud dengan “mekanis.”

Sekarang jika Anda akan menulis sebuah program untuk dieksekusi oleh prosesor, Anda dapat membayangkan menulis ribuan baris 1s dan 0s akan membosankan dan rentan kesalahan. Solusinya adalah bahasa assembly. Bahasa assembly menyediakan penggantian yang dimengerti manusia untuk string panjang kode biner.

Contoh

Misalnya, jika 10110 berarti “pindahkan nilainya,” maka kita dapat menyingkatnya dengan perintah MOV.

Kami juga bisa memberi 000 register nama yang lebih mudah diingat (dalam hal ini, register tersebut dinamai AL).

Akhirnya, kita bisa membuat nilai dalam sistem penomoran yang berbeda, seperti desimal (91) atau hexidecimal (61). Baris itu kemudian menjadi MOV AL, 61. Setelah seluruh program ditulis dengan cara ini, assembler dapat dengan mudah menerjemahkan setiap baris ke dalam representasi biner yang sesuai.

Komputer berfungsi (melakukan perhitungan, memindahkan data, mengubah data), dengan memproses miliaran instruksi kecil ini per detik.

Instruksi yang sangat sederhana (pindahkan nilai ini, salin nilai itu, tambahkan dua nilai ini bersama-sama dan simpan nilai di sana) bergabung untuk membentuk operasi yang kompleks, yang menggabungkan pada tingkat yang lebih tinggi dan lebih tinggi untuk benar-benar melakukan hal-hal yang Anda kenal sebagai bermakna.

Sumberdaya Bahasa Majelis

Sumber Daya Online

Tutorial dan Panduan Dasar

  • Perakitan Tutorial Pemrograman dari Titik Tutorial

  • X86 Assembly Language Programming, sebuah bab dari FreeBSD Developers ‘Handbook, yang membantu menempatkan penulisan bahasa assembly dalam konteks pengembangan sistem operasi

  • Ucapkan Halo untuk Majelis X64, pengantar perakitan yang cukup lembut, dari Code as Art blog

  • X86 Assembly Language Programming, tutorial lain yang menempatkan bahasa assembly dengan baik dalam konteks pemrograman OS-nya, tutorial ini mengacu pada Linux, Windows, dan bahkan sedikit tentang Mac OS X

  • PC Assembly Language, ini berfokus pada PC 32-bit yang menjalankan Linux, Windows, atau FreeBSD

  • Panduan Perakitan X86, dari departemen Ilmu Komputer Universitas Virginia

  • Webster: menyebut dirinya sebagai “Tempat di internet untuk belajar bahasa assembly,” situs ini (tampaknya) dijalankan oleh penulis The Art of Assembly Language, dan penemu HLA

  • Tutorial Perakitan Linux

  • Mudah X86-64

  • Majelis X86

  • Tutorial Pemrograman Perakitan Windows (pdf)

Tutorial Video

  • Tutorial Bahasa Pemrograman Bahasa Assembly, seri 55-video yang sangat lengkap tentang perakitan, mengikuti buku Bahasa Assembly untuk Prosesor x86 (Edisi 6) oleh Kip Irvine (jika Anda tidak mengikuti video, Anda mungkin menginginkan edisi yang lebih baru)

  • Kursus Video Pemrograman Bahasa Assembly, sebuah seri video 70-bagian, diajarkan oleh Arthur Griffith, yang memiliki pesona yang sangat sederhana

  • Assembly Language Intro, kuliah di ruang kelas di Cornell, memperkenalkan bahasa assembly

  • Assembly Language Programming, pengantar perakitan selama satu jam, dan format yang bagus jika Anda benar-benar suka mengikuti contoh-contoh aljabar pada over-head projector ketika Anda masih di sekolah menengah (ini adalah bagian dari seri yang lebih besar tentang Mikroprosesor dan Mikrokontroler).

Referensi

  • Daftar instruksi X86, daftar lengkap semua instruksi untuk arsitektur x86, dengan catatan kapan masing-masing ditambahkan

  • X86 Opcode dan Referensi Instruksi

  • Lembar Curang Bahasa Perakitan Intel X86 (pdf).

Alat

Assembler – ada banyak assembler yang tersedia – berikut adalah beberapa assembler gratis dan open source yang paling populer:

  • NASM

  • FASM

  • YASM

  • GASM.

IDE (Lingkungan Pengembangan Terpadu):

  • SASM, IDE lintas platform sederhana untuk bahasa assembly NASM, MASM, GAS, FASM

  • IDE segar, IDE bahasa rakitan visual dengan assembler FASM bawaan

  • WinAsm Studio, IDE gratis untuk mengembangkan program Windows 32-bit dan DOS 16-bit menggunakan Assembler

  • MASM Visual.

Belajar Komunitas dan Berkelanjutan

  • Forum Perakitan di Dream.In.Code

  • Forum MASM

  • Bahasa Majelis dan Kode Mesin di Forum Retasan

Buku

  • Seni Bahasa Majelis (edisi online) adalah salah satu buku paling populer tentang bahasa majelis, dari No Starch Press yang selalu dapat dibaca; Anda mungkin juga tertarik dengan ini dari penulis yang sama: Menulis Kode Hebat: Volume 1: Memahami Mesin dan Menulis Kode Hebat, Volume 2: Berpikir Tingkat Rendah, Menulis Tingkat Tinggi

  • Bahasa Assembly Langkah-demi-Langkah: Pemrograman dengan Linux

  • Bahasa Majelis Profesional

  • Bahasa Majelis untuk Prosesor x86

  • Pemrograman Bahasa Perakitan X86 Modern: 32-bit, 64-bit, SSE, dan AVX

  • ntroduksi ke Pemrograman Majelis 64 Bit untuk Linux dan OS X: Edisi Ketiga – untuk Linux dan OS X

  • Pengantar 80X86 Bahasa Perakitan Dan Arsitektur Komputer

  • Pemrograman Bahasa Majelis: Untuk Komputer PC dan Laptop.

Jika Anda Belajar Bahasa Perakitan?

Apakah Anda harus belajar bahasa assembly tergantung pada apa tujuan Anda. Bagi sebagian besar pengembang, jawabannya adalah “tidak.”

Ada dua alasan utama untuk mempelajari bahasa rakitan: karena Anda ingin menggunakannya secara langsung, atau karena Anda ingin memahami komputer pada tingkat dasar.

Dari sudut pandang praktis, hanya segelintir insinyur dan ilmuwan komputer dunia yang benar-benar menggunakan bahasa assembly.

Sebagian besar pengembangan perangkat lunak, termasuk hampir semua pengembangan aplikasi dalam bentuk apa pun, menggunakan bahasa pemrograman tingkat tinggi, dan bukan kode perakitan. Beberapa area spesifik tempat bahasa assembly digunakan adalah:

  • Sistem operasi

  • Firmware

  • Driver perangkat

  • Desain bahasa

  • Desain kompiler

  • Sistem tertanam

  • Desain perangkat keras

  • Kriptografi tingkat lanjut

  • Ilmu komputer teoretis

Alasan lain untuk belajar bahasa assembly adalah hanya untuk mendapatkan pemahaman yang lebih baik tentang apa yang sebenarnya terjadi jauh di dalam nyali komputer. (Inilah sebabnya mengapa hampir semua jurusan Ilmu Komputer harus belajar bahasa assembly.)

Tentu saja, jika Anda adalah tipe orang yang benar-benar tertarik pada hal itu, Anda mungkin ingin memikirkan karir yang bekerja dalam pengembangan sistem tingkat rendah.

Hal-hal Lain untuk Dipelajari

Ada beberapa bahasa di mana, jika Anda tahu sedikit, Anda bisa melakukan banyak hal. Python dan Ruby memang seperti itu – Anda bisa belajar cukup di akhir pekan untuk membangun sesuatu yang berharga. Bahasa majelis tidak seperti itu.

Bahasa assembly tidak pernah digunakan dalam ruang hampa. Tipe insinyur yang perlu mengetahui perakitan kemungkinan akan bekerja di area di mana ada kebutuhan untuk mengetahui beberapa keterampilan lain agar efektif. Ini kemungkinan termasuk:

  • Bahasa perangkat keras, seperti VHDL dan Verilog, bersama dengan pemahaman yang baik tentang mikroprosesor dan teknik listrik

  • Bahasa sistem operasi tingkat rendah seperti C dan turunannya: C ++, C #, dan D

  • Bahasa warisan seperti Fortran dan Cobol

  • Bahasa platform seperti Java dan Objective-C

  • Algoritma

  • Kompiler, juru bahasa, dan desain bahasa.

Bacaan Lebih Lanjut dan Sumberdaya

Kami memiliki banyak informasi lebih lanjut tentang hal-hal semacam ini, Pemrograman: Bahasa, Kronologi & Panduan.

Kode apa yang harus Anda pelajari?

Bingung tentang bahasa pemrograman apa yang harus Anda pelajari kode? Lihat infografis kami, Apa Kode Yang Harus Anda Pelajari?

Itu tidak hanya membahas berbagai aspek bahasa, itu menjawab pertanyaan-pertanyaan penting seperti, “Berapa banyak uang yang akan saya hasilkan untuk pemrograman Java sebagai mata pencaharian?”

Kode Apa Yang Harus Anda Pelajari?
Kode apa yang harus Anda pelajari?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me