Selamat Datang! Anda adalah pengunjung ke - ようこそ! あなたは人目のお客様に:

2010-06-01

Teori Assembly (Bagian 1)

Bahasa assembly merupakan bahasa tingkat rendah (low level language) yang digunakan pada pemrograman perangkat keras, yang memiliki ciri utama yaitu perintah-perintah dituliskan dalam bentuk instruksi berupa singkatan kata (mnemonics) diikuti oleh nilai data, alamat memori (pointer) atau register yaitu bagian dari CPU yang memiliki fungsi tertentu.

Sebagai contoh simak salah satu perintah assembly berikut:
MOV AX, #0A8

MOV merupakan singkatan dari MOVE yang berarti instruksi untuk menyalin data, alamat memori atau isi suatu register ke register tertentu.
AX merupakan register akumulator yang akan diisi oleh data hasil perintah MOVE.
#0A8 merupakan nilai data yang akan diisikan ke register akumulator (AX), yang ditulis dalam format heksadesimal dan selalu diawali oleh tanda pagar (hash).

Jadi dapat disimpulkan sintaks program assembly pada umumnya adalah instruksi, register tujuan dan data sebagai berikut:

Instruksi - Register Tujuan - Data

Selain nilai data, perintah assembly juga dapat menangani operasi antar register sebagai berikut:

MOV AX, DX => nilai register DX (data) disalin ke register AX (akumulator)
ADD AX, BX => nilai register BX (bus) dijumlahkan dengan nilai register AX dan hasilnya disimpan dalam register AX.

Setiap perintah assembly membutuhkan jumlah byte dan siklus mesin (machine cycle) yang berbeda-beda bergantung pada jenis perintah yang bersangkutan. Sebagai contoh, perhatikan beberapa perintah berikut:

INC AX => menaikkan isi register AX sebesar 1, membutuhkan 1 siklus mesin dan 1 byte memori.
SUB AX, BX => mengurangi isi register AX dengan register BX, membutuhkan 1 siklus mesin dan 2 byte memori.
DIV AX, BX => membagi isi register AX dengan register BX, membutuhkan 3 siklus mesin dan 2 byte memori karena operasi pembagian membutuhkan siklus mesin yang lebih besar daripada operasi penjumlahan dan pengurangan.

Untuk mengenal dasar dari program assembly, penulis memberikan program singkat berikut ini:

;Program pertama
MOV AX, #03
INC AX
MOV BX, #0A
ADD AX, BX

Program tersebut akan mengeluarkan hasil 04 + 0A = 0E atau 14 desimal, karena INC AX menaikkan nilai register AX dengan 1 sehingga menjadi 04 heksadesimal.

Tanda ";" pada awal program merupakan tanda komentar satu baris, yang menjelaskan bahwa kata/kalimat yang mengikutinya merupakan komentar semata dan tidak akan diproses oleh kompiler pada saat kompilasi program.

Di lain waktu, penulis akan menerangkan bagaimana program assembly bekerja dan teknik-teknik pemrograman assembly yang lebih rumit.

Tidak ada komentar:

Posting Komentar