P. 1
Dasar Program Assembly

Dasar Program Assembly

|Views: 16|Likes:
Published by Sonny Kasenda

More info:

Published by: Sonny Kasenda on Apr 21, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

08/28/2011

pdf

text

original

Dasar Program Assembly

Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin dan bahasa level tinggi misalnya bahasa C atau Pascal. Bahasa C atau Pascal dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya. Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Sedangkan bahasa Assembly memakai kode Mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan penulisan program. Program yang ditulis dengan bahasa Assembly terdiri dari label; kode mnemonic dan lain sebagainya, pada umumnya dinamakan sebagai program sumber (Source Code) yang belum bisa diterima oleh prosesor untuk dijalankan sebagai program, tapi harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner. Program sumber dibuat dengan program editor biasa, misalnya Notepad pada Windows atau SideKick pada DOS, selanjutnya program sumber diterjemahkan ke bahasa mesin dengan menggunakan program Assembler. Hasil kerja program Assembler adalah ³program objek´ dan juga ³assembly listing´. Program Objek berisikan kode kode bahasa mesin, kode-kode bahasa mesin inilah yang diumpankan ke memori-program prosesor. Dalam dunia mikrokontroler biasanya program objek ini diisikan ke UV EPROM, dan khusus untuk mikrokontroler buatan Atmel, program ini diisikan ke dalam Flash PEROM yang ada di dalam chip AT89C51 atau AT89C2051. Assembly Listing merupakan naskah yang berasal dari program sumber, dalam naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan hasil terjemahan program Assembler. Tambahan tersebut berupa nomor memori-program berikut dengan kode yang akan diisikan pada memori-program bersangkutan. Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program yang ditulis. Yang perlu diperhatikan adalah setiap prosesor mempunyai konstruksi yang berlainan, instruksi untuk mengendalikan masing-masing prosesor juga berlainan, dengan demikian bahasa

jika ada satu bagian yang tidak ada maka spasi atau TAB sebagai pemisah bagian tetap harus ditulis. o Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris. Label ini ditulis dalam bagian operand untuk menyatakan nomor . bagian mnemonic. pada saat menulis instruksi JUMP. bagian operand yang bisa lebih dari satu dan terakhir bagian komentar. Untuk membedakan masing-masing bagian tersebut dibuat ketentuan sebagian berikut: o Masing-masing bagian dipisahkan dengan spasi atau TAB. y Bagian Label ditulis mulai huruf pertama dari baris. khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma. yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonic. Gambar 7 Proses Assembly Konstruksi Program Assembly Program sumber dalam bahasa Assembly menganut prinsip 1 baris untuk satu perintah. yakni bagian Label. Label mewakili nomor memori-program dari instruksi pada baris bersangkutan. yang sama hanyalah pola dasar cara penulisan program Assembly saja.Assembly untuk masing-masing prosesor juga berlainan. jika baris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB. setiap baris perintah tersebut bisa terdiri atas beberapa bagian (field).

maka mnemonic merupakan subjek (kata kerja) dan operand merupakan objek (kata benda) dari kalimat perintah tersebut. mnemonis untuk mengatur kerja dari program Assembler ini dinamakan sebagai µAssembler Directive¶. DJNZ dan lain sebagainya. tapi bagian ini sangat penting untuk keperluan dokumentasi. misalnya RET. yakni manemonic yang dipakai sebagai instruksi mengendalikan prosesor. yakni satu nama untuk mewakili satu nilai tertentu dan nilai yang diwakili bisa apa saja tidak harus nomor memori-program. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG. pada instruksi untuk pemindahan/pengolahan data. operand bisa berupa Symbol yang mewakili data tersebut. EQU atau DB. merupakan pelangkap bagi mnemonic. operand bisa berupa berbagai macam hal.memori-program yang dituju. Disamping Label dikenal pula Symbol. Dengan demikian Label selalu mewakili nomor memoriprogram dan harus ditulis dibagian awal baris instruksi. Komentar merupakan bagian yang sekedar sebagai catatan. Operand adalah bagian yang letaknya di belakang bagian mnemonic. Tergantung pada jenis instruksinya. misalnya ADD. Pada instruksi JUMP operand berupa Label yang mewakili nomor memori-program yang dituju misalnya LJMP Start. misalnya ADD A. MOV. Bahkan ada pula instruksi yang tidak mempunyai operand. Assembler Directive . Kalau sebuah instrksi di-ibaratkan sebagai kalimat perintah. Cara penulisan Symbol sama dengan cara penulisan Label. tidak berpengaruh pada prosesor juga tidak berpengaruh pada kerja program Assembler.R1. harus dimulai di huruf pertama dari baris instruksi. misalnya MOV A.#Offset. dikenal dua macam mnemonic. Mnemonic (arttinya sesuatu yang memudahkan diingat) merupakan singkatan perintah. Banyak instruksi yang operandnya adalah register dari prosesor.

antara lain adalah o ORG ± singkatan dari ORIGIN. yang sama untuk banyak macam program Assembler. Nilai tersebut merupakan nilai 1 byte. Mnemonic untuk instruksi prosesor. Misalnya : ORG 1000 LJMP $+1000 Operand $+$500 mempunyai arti nomor memori-program bersangkutan ditambah dengan $500. atau CR EQU $0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah $08. karena instruksi LJMP ini terletak persis di bawah ORG $1000 maka nomor memori-program baris ini adalah $1000. maupun berupa Assembler Directive untuk mengatur kerja dari program Assembler. bagian Mnemonic dari sebuah baris perintah bisa merupakan instruksi untuk prosesor. dipakai untuk menentukan nilai sebuah Symbol. misalnya ORG $1000 maka memori berikutnya yang dipakai Assembler adalah $1000. DB merupakan Assembler Directive yang dipakai untuk membentuk teks maupun tabel. o DB ± singkatan dari DEFINE BYTE. untuk menyatakan nomor memori yang dipakai setelah perintah itu.Seperti sudah dibahas di atas. bisa berupa angka ataupun kode ASCII. terdapat beberapa Assembler Directive yang umum. dipakai untuk memberi nilai tertentu pada memoriprogram. sehingga operand $+$500 bernilai $1500 dan instruksi ini indentik dengan LJMP $1500 o EQU ± singkatan dari EQUATE. ORG $0200 . sedangkan mnemonic untuk Assembler Directive tergantung pada program Assembler yang dipakai. ORG berlaku untuk memori program maupun memori-data. Meskipun demikian. sangat tergantung pada prosesor yang dipakai. Assembler Directive yang bersifat umum tersebut. Dalam hal penomoran memori. Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88. dikenal tanda $ sebagai awalan untuk menyatakan nomor memori dari baris bersangkutan.

Hal ini harus benar-benar dibedakan dengan Assembler Directive DB dan DW yang membentuk kode di memori-program. Sebagai variabel tentu saja memori yang dipakai adalah memori-data (RAM) bukan memori-program (ROM). yakni selisih dari nomor memori-program baris bersangkutan dikurangi dengan nomor awal memori-program yang diisi STRING.STRING DB µAtmel AT89C2051¶ PANJANG EQU $-STRING o ORG $0200 memerintahkan program Assembler agar bekerja mulai dari memori-program nomor $0200. µt¶ dan seterusnya). o DS ± singkatan dari Define Storage. . Assembler Directive ini biasa dipakai untuk membentuk suatu tabel yang isinya adalah nomor-nomor memori-program. o DW ± singkatan dari DEFINE WORD. Assembler Directive ini dipakai untuk membentuk variable. Dan karena DS bekerja di RAM. dipakai untuk memberi nilai 2 byte ke memoriprogram pada baris bersangkutan. maka DS hanya sekedar menyediakan tempat di memori. PANJANG dari STRING bisa dihitung dengan cara PANJANG EQU $-STRING. tapi tidak mengisi nilai pada memori bersangkutan. instruksi selanjutnya memerintahkan program Assembler agar mengisi memori-program nomor $0200 dan berikutnya dengan tulisan µAtmel AT89C2051¶¶ (yang diisikan adalah kode ASCII dari µA¶.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->