Two Pass Assembler









Bahasa assembler adalah sebuah program komputer untuk menterjemahkan bahasa assembly, intinya sebuah representasi mnemonic dari bahasa mesin menjadi kode objek. Selain menterjemahkan instruksi assembly mnemonic menjadi opcode, assembler juga menyediakan kemampuan untuk menggunakan nama simbolik untuk lokasi memori (menghindari perhitungan rumit dan pembaruan alamat secara manual ketika sebuah program diubah sedikit), dan fasilitas makro untuk melakukan penggantian textual yang artinya digunakan untuk menggantikan suatu urutan instruksi yang pendek untuk dijalankan perbaris dan bukan dalam sebuah subrutin..

Bahasa assembly dikategorikan sebagai tingkat rendah (low level language). Ini untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine dependent. Untuk membandingkan bahasa mesin dan assembly, kita dapat melihatnya dari 3 karakteristik berikut :
1. Mnemonic operation code : sebagai pengganti numeric operation code (opcodes) yang digunakan pada bahasa mesin, digunakanlah mnemonic code pada bahasa assembly. Selain kemudahan dalam penulisannya dibandingkan dari bahasa mesin juga mendukung pelacakan kesalahan seperti kesalahan penulisan operation code.
2. Symbol operand specification : Penamaan simbol sebagai suatu data atau instruksi. Operand lebih menunjukkan symbolic reference dibandingkan dengan alamat mesin suatu data atau instruksi. Hal ini akan mempermudah pada saat harus dilakukan modifikasi program.

3. Declaration of data/storage area : Data dapat dinyatakan dalam notasi desimal. Ini dilakukan untuk mencegah konversi secara manual dari konstanta ke dalam representasi internal mesin.

A. Multi-Pass Translation
     Multi pass translation dalam program bahasa assembly dapat menangani masalah forward reference. Unit pada source program digunakan untuk tujuan mentranslasi semua bagian program. Ketika fase analisis statement program pertama kali dilakukan, proses LC akan dikerjakan dan simbol yang didefinisikan dalam program dimasukkan ke dalam simbol table.Selama second pass, statement diproses dengan tujuan mensintesa target form. Semua simbol dan alamat yang dapat ditemukan dalam simbol table tidak akan menimbulkan forward reference pada assembly.
      Kalimat "equivalent representasion" digunakan pada translasi yang membutuhkan elaborasi. Sering kali ketika proses pemisahan field label, mnemonic opcode dan operand field terjadi duplikasi. Untuk mengurangi duplikasi tersebut, hasil analisa source atatement dari first pass direpresentasikan dalam internal form pada source statement. Bentuk ini disebut intermediate code. Ilustrsi dari skema two pass assembler dengan menggunakan intermediate code form dapat dilihat pada gambar berikut ini.










 
Selain membangun intermediate code, suatu assembler pass juga membangun dan/atau mengganti database yang digunakan sebsequent pass. Karena kebutuhan untuk membangun dan memproses intermediate code, suatu multi pass translator menjalankan fungsinya lebih lambat dibandingkan dengan single pass translation.
Nah...itulah bahasan sekilas tentang assembler dah pemahamannya yang bisa saya bagikan kepada teman-teman semua. Terimakasih sudah membaca.


Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

3 comments: on "Two Pass Assembler"

ipin mengatakan...

ilmu pengetahuan..;)

Adit's Blog mengatakan...

@ asfin : Salam reage mamen. hehe...
@ ipin : trims dah coment sobat ipin...

Posting Komentar

Komentarmu, semangat Blogku...