Bahasa Assembly atau bahasa rakitan adalah bahasa komputer yang posisinya ada di antara bahasa mesin dengan bahasa pemrograman dengan tingkatan lebih tinggi, semisal C. Suatu bahasa pemrograman dapat disebut sebagai bahasa pemrograman tingkat tinggi bila semakin menyerupai bahasa manusia, yang mana semakin mudah dipahami orang awam. Untuk bahasa mesin sendiri, merupakan kumpulan kode biner (binary code) yang merupakan perintah yang dijalankan oleh komputer. Komputer sendiri bekerja dengan logika biner, On atau Off, High atau Low, 1 atau 0. Sedangkan untuk bahasa rakitan menggunakan mnemonic code untuk menggantikan kode biner, dengan tujuan lebih mudah dalam penulisan dan dipahami manusia.
Suatu program yang ditulis dalam bahasa rakitan terdiri dari label, kode mnemonic, dan lain sebagainya, yang pada umumnya disebut dengan istilah source code. Source code tersebut belum dapat dijalankan langsung oleh komputer, sehingga perlu untuk diterjemahkan terlebih dahulu ke bahasa mesin yakni dalam kode biner.
Suatu source code dapat dibuat dengan menggunakan program text editor biasa semisal NotePad. Source code tersebut kemudian diterjemahkan dalam bahasa mesin dengan menggunakan program assembler. Hasil dari program assembler tersebut berupa object program dan juga assembler listing.
Assembler listing merupakan naskah yang berasal dari source code, dalam naskah tersebut pada setiap baris dari source cod editambahkan hasil terjemahan assembler. Tambahan tersebut berupa nomor memory program berikut dengan kode yang akan diisikan pada memory program yang terkait. Naskah tersebut diperlukan dalam dokumentasi dan sarana untuk debugging dari program yang dibuat.
Konstruksi Program Assembler
Source code dalam bahasa rakitan menggunakan prinsip satu baris program untuk satu instruksi pekerjaan. Dimana setiap baris perintah tersebut bisa terdiri dari beberapa bagian atau field, yakni.
- Label, sebagai penanda suatu baris
- Mnemonic code, berupa operation code
- Operand, bisa terdiri dari lebih satu
- Comment, digunakan sebagai keterangan tambahan
- Setiap bagian dipisahkan dengan space atau tab, khusus untuk operand yang lebih dari satu maka masing-masing operand dipisahkan dengan tanda (,) koma
- Setiap bagian tersebut tidak harus selalu ada pada satu baris, jika ada satu bagian yang tidak ada tetap harus menggunakan space atau tab
- Untuk bagian label ditulis mulai huruf pertama dari baris, jika baris yang bersangkutan tidak menggunakan label tersebut maka label dapat diganti dengan space atau tab, yakni sebagai pemisah antara label dengan mnemonic