Definisi Bahasa Majelis

Apa itu Bahasa Majelis?

Bahasa assembly adalah jenis bahasa pemrograman tingkat rendah yang dimaksudkan untuk berkomunikasi langsung dengan perangkat keras komputer.Tidak seperti bahasa mesin, yang terdiri dari karakter biner dan heksadesimal, bahasa rakitan dirancang untuk dapat dibaca oleh manusia.

Bahasa pemrograman tingkat rendah seperti bahasa rakitan adalah jembatan yang diperlukan antara perangkat keras yang mendasari komputer dan bahasa pemrograman tingkat tinggi—seperti Python atau JavaScript—di mana program perangkat lunak modern ditulis.

Takeaways Kunci

  • Bahasa assembly adalah jenis bahasa pemrograman yang menerjemahkan bahasa tingkat tinggi ke dalam bahasa mesin.
  • Ini adalah jembatan yang diperlukan antara program perangkat lunak dan platform perangkat keras yang mendasarinya.
  • Bahasa assembly bergantung pada sintaks bahasa, label, operator, dan arahan untuk mengubah kode menjadi instruksi mesin yang dapat digunakan.
  • Bahasa assembly dapat melewati assembler single-pass atau multi-pass, masing-masing dengan kegunaan dan manfaat khusus.
  • Saat ini, bahasa assemble jarang ditulis secara langsung, meskipun masih digunakan di beberapa aplikasi khusus seperti ketika persyaratan kinerja sangat tinggi.

Cara Kerja Bahasa Majelis

Pada dasarnya, instruksi paling dasar yang dieksekusi oleh komputer adalah kode biner, yang terdiri dari satu dan nol.Kode-kode itu secara langsung diterjemahkan ke dalam keadaan "hidup" dan "mati" dari listrik yang bergerak melalui sirkuit fisik komputer.Intinya, kode-kode sederhana ini membentuk dasar dari "bahasa mesin", variasi paling mendasar dari bahasa pemrograman.

Tentu saja, tidak ada manusia yang dapat membuat program perangkat lunak modern dengan memprogram satu dan nol secara eksplisit.Sebaliknya, pemrogram manusia harus bergantung pada berbagai lapisan abstraksi yang memungkinkan diri mereka untuk mengartikulasikan perintah mereka dalam format yang lebih intuitif bagi manusia.

Secara khusus, pemrogram modern mengeluarkan perintah dalam apa yang disebut "bahasa tingkat tinggi," yang memanfaatkan sintaks intuitif seperti kata dan kalimat bahasa Inggris secara keseluruhan, serta operator logika seperti "dan," "atau," dan "lain" yang akrab dengan penggunaan sehari-hari.

Namun, pada akhirnya, perintah tingkat tinggi ini perlu diterjemahkan ke dalam bahasa mesin.Daripada melakukannya secara manual, pemrogram mengandalkan bahasa rakitan yang tujuannya adalah untuk menerjemahkan secara otomatis antara bahasa tingkat tinggi dan tingkat rendah ini.Bahasa rakitan pertama dikembangkan pada tahun 1940-an, dan meskipun pemrogram modern dan pemroses bahasa alami modern menghabiskan sangat sedikit waktu untuk berurusan dengan bahasa rakitan, mereka tetap penting untuk keseluruhan fungsi komputer.

Selama hari-hari awal komputasi, pemrograman sistem dan pemrograman aplikasi akan berlangsung sepenuhnya dalam bahasa rakitan.Tanpa bahasa rakitan, banyak komputer modern dan bahasa tingkat tinggi yang kita gunakan saat ini tidak akan mungkin terwujud.

Komponen Bahasa Assembly

Sintaksis

Saat menulis kode apa pun dalam bahasa program apa pun, ada urutan aturan khusus yang dapat diamati yang harus diikuti agar kompiler dapat mengeksekusi kode tanpa kesalahan.Aturan-aturan ini didefinisikan sebagai sintaks, dan berisi kriteria seperti jumlah maksimum karakter yang diizinkan, baris kode karakter apa yang harus dimulai, atau apa arti simbol tertentu "yaitu titik koma".

Label

Label adalah simbol yang mewakili alamat dimana instruksi atau data disimpan.Tujuannya adalah untuk bertindak sebagai tujuan ketika dirujuk dalam sebuah pernyataan.Label dapat digunakan di mana saja alamat dapat digunakan dalam bahasa rakitan.Label simbolik terdiri dari pengidentifikasi diikuti oleh titik dua, sedangkan label numerik terdiri dari satu digital diikuti oleh titik dua.

Operator

Juga disebut sebagai perintah, operator adalah ekspresi logis yang muncul setelah bidang label.Selain itu, harus didahului oleh setidaknya satu karakter spasi putih.Operator dapat berupa opcode atau directive.Opcode berhubungan langsung dengan instruksi mesin, dan kode operasi mencakup setiap nama register yang terkait dengan instruksi.Atau, kode operasi direktif adalah instruksi yang diketahui oleh assembler.

Pengarahan

Direktif adalah instruksi kepada assembler yang memberitahu tindakan apa yang harus dilakukan selama proses perakitan.Direktif memiliki kepentingan untuk mendeklarasikan atau menyimpan memori untuk variabel; variabel-variabel ini dapat dipanggil kembali nanti dalam proses untuk melakukan fungsi yang lebih dinamis.Arahan juga digunakan untuk memecah program menjadi beberapa bagian.

Makro

Makro bahasa rakitan adalah format sepatu template yang menyajikan serangkaian atau pola pernyataan.Urutan pernyataan bahasa rakitan ini mungkin umum untuk beberapa program berbeda.Fasilitas makro digunakan untuk menafsirkan definisi makro, sementara panggilan makro dimasukkan ke dalam kode sumber di mana kode rakitan "normal" akan hilang alih-alih kumpulan pernyataan makro.

Mnemonik

Mnemonic adalah singkatan dari operasi.Sebuah mnemonic dimasukkan ke dalam kode operasi untuk setiap instruksi program assemble untuk menentukan "opcode" singkat yang mewakili kumpulan kode yang lebih besar dan lengkap.Misalnya, mnemonic "kalikan dengan dua" memiliki set lengkap kode yang melakukan mnemonic.

Perdagangan Frekuensi Tinggi

Saat ini, bahasa rakitan tetap menjadi subjek studi oleh mahasiswa ilmu komputer, untuk membantu mereka memahami bagaimana perangkat lunak modern berhubungan dengan platform perangkat keras yang mendasarinya.Dalam beberapa kasus, pemrogram harus terus menulis dalam bahasa rakitan, seperti ketika tuntutan kinerja sangat tinggi, atau ketika perangkat keras yang bersangkutan tidak kompatibel dengan bahasa tingkat tinggi saat ini.

Salah satu contoh yang relevan dengan keuangan adalah platform perdagangan frekuensi tinggi (HFT) yang digunakan oleh beberapa perusahaan keuangan.Di pasar ini, kecepatan dan keakuratan transaksi sangat penting agar strategi perdagangan HFT terbukti menguntungkan.Oleh karena itu, untuk mendapatkan keunggulan dibandingkan pesaing mereka, beberapa perusahaan HFT telah menulis perangkat lunak perdagangan mereka secara langsung dalam bahasa rakitan, sehingga tidak perlu menunggu perintah dari bahasa tingkat yang lebih tinggi untuk diterjemahkan ke dalam bahasa mesin.

Banyak yang percaya bahwa bahasa rakitan memiliki kurva belajar yang paling curam dan merupakan bahasa komputasi yang paling sulit untuk dipelajari.

Keuntungan dan kerugian

Bahasa assembly biasanya dapat dieksekusi lebih cepat daripada bahasa tingkat tinggi.Relatif mudah untuk menyisipkan komponen yang dihapus dari kode bahasa rakitan, dan bahasa rakitan biasanya memerlukan lebih sedikit instruksi untuk menyelesaikan tugas jika dibandingkan dengan jenis bahasa lainnya.

Bahasa rakitan juga sering digunakan oleh pemrogram yang menginginkan kontrol lebih besar atas komputer mereka karena bahasa rakitan memungkinkan Anda untuk secara langsung memanipulasi perangkat keras Anda.Karena kecepatan dan pentingnya, beberapa program secara khusus ditulis menggunakan bahasa rakitan karena kodenya biasanya tetap lebih kecil.

Bahasa assembly memang cenderung memiliki beberapa kelemahan.Program panjang yang ditulis menggunakan bahasa assembly biasanya membutuhkan daya komputasi yang lebih berat dan tidak dapat dijalankan pada komputer kecil.Beberapa mungkin menemukan sintaks bahasa rakitan lebih sulit untuk diingat, dan mungkin perlu waktu lebih lama untuk membuat kode menggunakan bahasa rakitan karena lebih kompleks.Selain itu, bahasa rakitan biasanya tidak portabel di antara merek yang berbeda dari komputer yang berbeda; mirip dengan bagaimana tunjangan karyawan hilang saat berpindah perusahaan, bahasa tidak dapat diterjemahkan dengan mulus ke komputer yang berbeda.

kelebihan
  • Eksekusi mungkin lebih sederhana dibandingkan dengan bahasa lain

  • Eksekusi biasanya lebih cepat dibandingkan dengan bahasa lain

  • Memungkinkan kontrol langsung atas perangkat keras

  • Kode mungkin tetap lebih kecil dibandingkan dengan bahasa lain

Kontra
  • Pemrograman mungkin lebih menantang untuk dipelajari dibandingkan dengan bahasa tingkat tinggi

  • Sintaks bahasa assembly sulit

  • Tidak portabel antar mesin

Jenis Assembler

Bahasa assembly harus diterjemahkan ke dalam bahasa mesin menggunakan assembler.Ada dua jenis utama assembler.

Assembler single-pass memindai program satu kali dan membuat program biner yang setara.Jenis assembler ini memvalidasi kode bahasa assembly dengan melihat kode di tabel kode mnemonic.Assembler single-pass seringkali lebih cepat daripada assembler multi-pass, dan biasanya tidak perlu membuat kode perantara apa pun.

Assembler multi-pass berarti assembler menggunakan lebih dari satu pass.Assembler multi-pass membuat tabel dengan setiap simbol dan masing-masing nilainya di pass pertama, lalu menggunakan tabel di pass berikutnya untuk menghasilkan kode baru.Setiap pass terpisah biasanya menangani tugas spesifik yang berbeda.Meskipun biasanya lebih lambat, assembler multi-pass dengan struktur modular sering dapat digunakan kembali untuk mesin yang berbeda.

Contoh Kode Bahasa Assembly

Di bawah ini adalah contoh kode bahasa rakitan Netwide Assembler (NASM).

Contoh Kode Bahasa Assembly.

Universitas Loyola Marymount

Dalam contoh ini, instruksi SYSCALL menjelang akhir kode memicu bagian memori tempat layanan sistem operasi disimpan.Kemudian, kode RAX digunakan untuk memanggil kode yang akan ditulis, kemudian RDI untuk keluar.Fungsi SYSCALL digunakan dua kali untuk memanggil sistem operasi serta untuk menunjukkan ke sistem ketika kode selesai dan sudah waktunya untuk keluar.

Apa Contoh Bahasa Assembly?

Bahasa rakitan yang paling umum digunakan termasuk ARM, MIPS, dan x86.

Apakah C++ adalah Bahasa Assembly?

C++ tidak terdiri dari kode assembly.Bahasa komputasi C++ terdiri dari kode C++ yang diterjemahkan oleh kompiler menjadi kode mesin yang dapat dieksekusi.

Apakah Python adalah Bahasa Assembly?

Python lebih maju daripada bahasa assembly.Bahasa assembly dianggap sebagai bahasa tingkat rendah, sedangkan bahasa tingkat tinggi seperti C, Java, atau Python menggunakan 0 dan 1 sebagai ganti angka, simbol, dan singkatan.

Bagaimana Bahasa Assembly Digunakan Saat Ini?

Meskipun dianggap bahasa tingkat yang lebih rendah dibandingkan dengan bahasa yang lebih maju, bahasa rakitan masih digunakan.Bahasa rakitan digunakan untuk memanipulasi perangkat keras secara langsung, mengakses instruksi prosesor khusus, atau mengevaluasi masalah kinerja penting.Bahasa ini juga digunakan untuk meningkatkan keunggulan kecepatannya dibandingkan bahasa tingkat tinggi untuk aktivitas yang sensitif terhadap waktu seperti perdagangan frekuensi tinggi.

Garis bawah

Bahasa assembly adalah kode tingkat rendah yang bergantung pada hubungan yang kuat antara input instruksi menggunakan bahasa pengkodean dan bagaimana mesin menginterpretasikan instruksi kode.Kode diubah menjadi tindakan yang dapat dieksekusi menggunakan assembler yang mengubah input menjadi instruksi yang dapat dikenali untuk mesin.Meskipun lazim pada hari-hari awal komputasi, banyak sistem yang lebih besar menggunakan bahasa tingkat yang lebih tinggi.