Mengenal Bahasa Assembly

Bahasa assembly merupakan bahasa yang sangat dekat dengan bahasa mesin. Bahasa Assembly sebenarnya adalah bahasa mesin yang menggunakan simbol-simbol instruksi (mnemonic) untuk mewakili bahasa mesin.

Untuk mempelajari bahasa assembly sangat diperlukan pengetahuan tentang organisasi dan arsitektur mesin yang bersangkutan, khususnya komponen-komponen pemroses pusat (CPU), memori, register, dan peripheral serta hubungannya dengan software atau program. Hal ini sangat berbeda jika dibandingkan dengan bahasa tingkat tinggi seperti C, dan C++ yang tidak mensyaratkan seorang programmer untuk mengetahui atau mendalami tentang organisasi dan arsitektur mesin yang bersangkutan.

Setiap bahasa assembly secara langsung dipengaruhi oleh set instruksi mesin komputer dan arsitektur perangkat keras. Seperti halnya pada komputer IBM-PC yang menggunakan instruksi keluarga mikroprosesor Intel 8086 – 80486.

Setiap program yang dibuat dengan bahasa assembly harus dikonversi ke dalam bahasa mesin agar dapat dieksekusi oleh mikroprosesor. Program ini dinamakan Assembler. Dengan assembler mampu menerjemahkan program yang ditulis dalam bahasa assembly ke dalam bahasa mesin sesuai instruksi yang kompatibel dengan organisasi dan arsitektur mesin itu sendiri.

Alasan utama mengapa bahasa aseembly masih digunakan adalah penggunaan pemrograman tertentu cukup sulit atau tidak mungkin dikerjakan oleh bahasa tingkat tinggi. Contoh, komunikasi langsung dengan sistem operasi komputer mungkin diperlukan. Program grafis warna dengan kecepatan tinggi mungkin harus ditulis menggunakan memori minimum. Program yang digunakan untuk menghubungkan antara peripheral printer dengan komputer.

Bahasa assembly memiliki sedikit batasan atau aturan. Harga yang harus dibayar untuk keleluasaan itu adalah perlu menangani berbagai kerumitan dalam pemrograman. Biasanya kita membuat subrutin dalam bahasa rakitan dan memanggilnya dari program bahasa tingkat tinggi seperti C, dan C++. Keuntungan yang dapat diperoleh karena ketatnya bahasa tingkat tinggi, dengan menggunakan bahasa tingkat rendah dalam membuat aplikasi.  Subrutin bahasa assembly menangani operasi – operasi yang tidak tersedia dalam bahasa tingkat tinggi. Misalnya kita menulis program aplikasi bisnis dalam C++ untuk IBM-PC. Kita memerlukan aplikasi untuk mengecek ruang kosong pada disk, membuat subdirectory, menulis proteksi file, dan membuat window yang overlapping, semuanya dalam satu program. Misalnya kompiler C++ tidak dapat melakukannya semua, maka kita dapat membuat subrutin bahasa assembly untuk menangani tugas-tugas tersebut.

Bahasa mesin adalah bahasa yang dibangun oleh sejumlah angka yang dapat diinterpretasikan oleh CPU komputer. CPU biasanya mempunyai program kecil yang ditambahkan langsung ke dalam chip, disebut microcode. Penerjemah micorcode mengubah langsung instruksi-instruksi mesin ke dalam sinyal perangkat keras.
Dengan bahasa mesin memungkinkan untuk melaksanakan tugas-tugas umum oleh CPU, seperti pemindahan bilangan atau perhitungan aritmetika. Berikut ini contoh instruksi bahasa mesin yang memindahkan angka 7 ke dalam register AL.

  • Bahasa Mesin: 10110000 00000111
  • Bahasa Assembly: MOV AL, 5
  • AL = 5

Delapan bit pertama sebagai kode operasi (opcode) yang menunjukkan instruksi pemindahan angka ke register AL. Delapan bit kedua sebagai operand, yang memiliki nilai desimal 7.

Register adalah memori berkecepatan tinggi yang berada di dalam CPU. Register diidentifikasi oleh nama 2 buah huruf, seperti AH, AL, atau AX. Set instruksi CPU memiliki sifat downward – compatible sehingga instruksi yang bekerja pada mikroprosesor level rendah maka akan bekerja juga pada mikroprosesor dengan level lebih tinggi. Contoh instruksi yang bekerja pada intel 8086 akan juga bekerja dengan baik pada intel 80286.

Namun hal ini tidak berlaku sebaliknya, set instruksi yang bekerja pada mikroprosesor level tinggi intel 80286 tidak akan bekerja dengan baik pada mikroprosesor level rendah intel 8086.


Our Divisions

 

Our Partners

TMN Studio

Who's Online

We have 124 guests and no members online