Bahasa rakitan (bahasa Inggris: assembly language) adalah bahasa pemrograman komputer tingkat rendah. Bahasa assembly merupakan notasi untuk bahasa mesin yang dapat dibaca oleh manusia dan berbeda-beda tergantung dari arsitektur komputer yang digunakan.
Berbeda dengan bahasa pemrograman tingkat tinggi, bahasa assembly atau rakitan biasanya memiliki hubungan 1-1 dengan instruksi bahasa mesin. Misalnya, tiap julukan (mnemonic) yang ditulis di program dengan bahasa rakitan akan diterjemahkan menjadi tepat satu kode operasi yang dapat dimengerti langsung oleh komputer. Pada bahasa tingkat tinggi, satu perintah dapat diterjemahkan menjadi beberapa kode operasi dalam bahasa mesin. Proses pengubahan bahasa rakitan ke bahasa mesin dilakukan oleh assembler, dan proses balikannya dilakukan oleh disassembler.
Setiap arsitektur komputer memiliki bahasa mesin yang berbeda-beda sehingga bahasa rakitannya pun berbeda-beda.(dna)
Kelebihan Bahasa Assembly:
1. Ketika di-compile lebih kecil ukuran
2. Lebih efisien/hemat memori
3. Lebih cepat dieksekusi
Kesulitan Bahasa Assembly:
1. Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang
Berbeda dengan bahasa pemrograman tingkat tinggi, bahasa assembly atau rakitan biasanya memiliki hubungan 1-1 dengan instruksi bahasa mesin. Misalnya, tiap julukan (mnemonic) yang ditulis di program dengan bahasa rakitan akan diterjemahkan menjadi tepat satu kode operasi yang dapat dimengerti langsung oleh komputer. Pada bahasa tingkat tinggi, satu perintah dapat diterjemahkan menjadi beberapa kode operasi dalam bahasa mesin. Proses pengubahan bahasa rakitan ke bahasa mesin dilakukan oleh assembler, dan proses balikannya dilakukan oleh disassembler.
Setiap arsitektur komputer memiliki bahasa mesin yang berbeda-beda sehingga bahasa rakitannya pun berbeda-beda.(dna)
Kelebihan Bahasa Assembly:
1. Ketika di-compile lebih kecil ukuran
2. Lebih efisien/hemat memori
3. Lebih cepat dieksekusi
Kesulitan Bahasa Assembly:
1. Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang
dibanding bahasa tingkat tinggi
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak
3. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis.
ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)
- Operation Code(opcode)
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak
3. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis.
ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)
- Operation Code(opcode)
Menspesifikasikan operasi yang akan dilakukan (misalnya, ADD). Operasi
dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi, atau
opcode.
- Source Operand Reference
Operasi dapat mencakup satu atau lebih sumber, operand merupakan input
- Source Operand Reference
Operasi dapat mencakup satu atau lebih sumber, operand merupakan input
bagi operasi.
- Result Operand Reference
Operand yang dapat membuat hasil dari operasi.
- Next instruction Reference
Berfungsi untuk memberitahu CPU posisi instruksi yang berikutnya yang
- Result Operand Reference
Operand yang dapat membuat hasil dari operasi.
- Next instruction Reference
Berfungsi untuk memberitahu CPU posisi instruksi yang berikutnya yang
harus diambil setelah menyelesaikan eksekusi atau instruksi.
FORMAT INSTRUKSI
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).
FORMAT INSTRUKSI
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).
JENIS – JENIS INSTRUKSI
- Data processing: Arithmetic dan Logic Instructions
- Data storage: Memory instructions
- Data Movement: I/O instructions
- Control: Test and branch instructions
JUMLAH ALAMAT
Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya.
Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi :
1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat
instruksi berikutnya)
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan
operand dan hasilnya)
MACAM-MACAM INSTRUKSI MENURUT JUMLAH OPERASI YANG DISPESIFIKASIKAN :
- O – Address Instruction
- 1 – Addreess Instruction.
- N – Address Instruction
- M + N – Address Instruction
OPERASI-OPERASI SET INSTRUKSI
Operasi set instruksi untuk transfer data :
• MOVE digunakan untuk memindahkan word atau blok dari source ke tujuan
• STORE digunakan untuk memindahkan word dari prosesor ke memori.
• LOAD kebalikan dari store
• EXCHANGE digunakan untuk menukar isi sumber ke tujuan.
• CLEAR / RESET digunakan untuk membersihkan word.
• SET digunakan untuk memindahkan word 1 ke tujuan.
• PUSH : memindahkan word dari sumber ke bagian paling atas stack.
• POP : memindahkan word dari bagian paling atas sumber.
Operasi set instruksi untuk arithmetic :
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
Operasi set instruksi untuk operasi logical :
• AND, OR, NOT, EXOR
• COMPARE untuk melakukan perbandingan logika.
• 3TEST untuk menguji kondisi.
• SHIFT : operand menggeser ke kiri atau kanan
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
Operasi set instruksi untuk conversi :
• TRANSLATE : menterjemahkan nilai-nilai berdasarkan tabel korespodensi.
• CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
Operasi set instruksi Input / Ouput :
• INPUT : memindahkan data dari perangkat I/O tertentu ke tujuan
• OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
• START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
• TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
Operasi set instruksi untuk transfer control :
• JUMP (cabang) : pemindahan tidak bersyarat.
• JUMP SUBRUTIN : melompat ke alamat tertentu.
• RETURN : mengganti isi PC dan register lainnya yang berasal dari
MACAM-MACAM INSTRUKSI MENURUT JUMLAH OPERASI YANG DISPESIFIKASIKAN :
- O – Address Instruction
- 1 – Addreess Instruction.
- N – Address Instruction
- M + N – Address Instruction
OPERASI-OPERASI SET INSTRUKSI
Operasi set instruksi untuk transfer data :
• MOVE digunakan untuk memindahkan word atau blok dari source ke tujuan
• STORE digunakan untuk memindahkan word dari prosesor ke memori.
• LOAD kebalikan dari store
• EXCHANGE digunakan untuk menukar isi sumber ke tujuan.
• CLEAR / RESET digunakan untuk membersihkan word.
• SET digunakan untuk memindahkan word 1 ke tujuan.
• PUSH : memindahkan word dari sumber ke bagian paling atas stack.
• POP : memindahkan word dari bagian paling atas sumber.
Operasi set instruksi untuk arithmetic :
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
Operasi set instruksi untuk operasi logical :
• AND, OR, NOT, EXOR
• COMPARE untuk melakukan perbandingan logika.
• 3TEST untuk menguji kondisi.
• SHIFT : operand menggeser ke kiri atau kanan
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
Operasi set instruksi untuk conversi :
• TRANSLATE : menterjemahkan nilai-nilai berdasarkan tabel korespodensi.
• CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
Operasi set instruksi Input / Ouput :
• INPUT : memindahkan data dari perangkat I/O tertentu ke tujuan
• OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
• START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
• TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
Operasi set instruksi untuk transfer control :
• JUMP (cabang) : pemindahan tidak bersyarat.
• JUMP SUBRUTIN : melompat ke alamat tertentu.
• RETURN : mengganti isi PC dan register lainnya yang berasal dari
lokasi tertentu.
• EXECUTE : mengambil operand dari lokasi tertentu lalu mengeksekusinya
• EXECUTE : mengambil operand dari lokasi tertentu lalu mengeksekusinya
sebagai instruksi.
• SKIP : menambah PC sehingga melompati instruksi berikutnya.
• SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan
• SKIP : menambah PC sehingga melompati instruksi berikutnya.
• SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan
pada persyaratan.
• HALT : menghentikan eksekusi program.
• WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
• NO OPERATION : tidak ada operasi yang dilakukan.
CONTROL SYSTEM : membaca atau mengubah register kontrol
• HALT : menghentikan eksekusi program.
• WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
• NO OPERATION : tidak ada operasi yang dilakukan.
CONTROL SYSTEM : membaca atau mengubah register kontrol
No comments:
Post a Comment