Anything is possible, unless it's not.

Perhatian!


Ini adalah blog lama saya, yang tidak pernah saya update lagi. Anda dapat mengunjungi blog saya yang baru di
http://sawisamuel.blogspot.com/

Terima Kasih

Jumat, 02 Juli 2010

Bahasa Rakitan, bahasa setengah komputer

org 0x100
section .text
mov ax, 0x0900
mov dx, themessage
int 0x21
int 0x20
section .data
themessage db "Hello World!", 0x0D, 0x0A, 0x24

Saya sudah lama sekali tidak menulis dalam bahasa pemrograman seperti ini. Ini adalah bahasa rakitan, atau yang terkenal dalam bahasa linggis: assembly language. Bahasa ini sebenarnya adalah penulisan yang mudah dibaca dari "bahasa komputer". Setiap instruksinya berkorespondensi satu-satu dengan byte-byte yang disimpan dalam program (pernah buka file ".exe" dengan menggunakan notepad?). Alhasil, walaupun untuk membuat program semacam Hello World saja perlu kode yang berbaris-baris, tetapi hasilnya hanya..........

25 byte!!!!!!!!!!!!

ya, walaupun harus dijalankan di DOS.

Ada beberapa 'dialek' untuk bahasa Assembly, misalkan Microsoft Macro Assembler, Turbo Assembler, NetWide Assembler, dll. Mereka menggunakan sintaks yang berbeda-beda. Tetapi pada dasarnya, instruksi-instruksi yang digunakan tetap sama. Kode Hello World di atas menggunakan dialek NetWide Assembler.

Saya melihat bahwa NetWide Assembler adalah dialek yang paling mudah dimengerti dan digunakan, walaupun sebelumnya saya sudah mempelajari Microsoft Macro Assembler dan Turbo Assembler 3.0.

Bahasa rakitan ini unggul dalam hal kecepatan, keringanan program, dan ukuran program. Walaupun bahasa pemrograman ini unggul dalam ketiga hal itu, bahasa pemrograman ini sudah jarang digunakan dewasa ini, karena membutuhkan usaha yang lebih besar untuk menulisnya. Tetapi bahasa ini tetap digunakan apabila performa program yang dibuat itu sangat penting, misalnya fungsi-fungsi inti dari Windows.

Saya merencanakan program komputer yang bisa mem-brute-force sebuah Rubik's Cube. Tentu saja akan berjalan lebih cepat apabila ditulis dalam bahasa pemrograman rakitan/assembly language.

2 komentar:

  1. keren bgt kak... thx ini sebuah informasi penting nih... hehe.. :)

    BalasHapus
  2. uuh..anggi ngerti ya??aku si bodoh di sini..hiks..

    BalasHapus