Bahasa assembly

A. Element dari Bahasa Pemrograman Assembler
Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level languange). Ini untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine dependent. Untuk membandingkan bahasa mesin dan bahasa assembly, kita dapat melihatnya dari tiga karakteristik berikut:
1. Mnemonic operation code
Sebagai pengganti numeric operation code (opcodes) yang digunakan pada bahasa mesin, digunakankanlah mnemonic code pada bahasa assembly. Selain kemudahan dalam penulisannya dibandingkan dari bahasa mesin juga mendukung pelacakan kesalahan seperti kesalahan penulisan operation code.
2. Symbolic operand specification
Penamaan simbol diasosiasikan 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. Sebagai contoh :
5 menjadi (11111010)2 atau 10.5 menjadi (41A80000)16
Program assembly mengenal tiga jenis statement
Imperative Statement
Statement imperative dalam bahasa assembly ditunjukan dengan suatu tindakan yang dikerjakan selama eksekusi program assembly. Karena itu setiap statement imperative ditranslasikan ke dalam instruksi mesin.
Declarative Statement
Statement declarative dalam bahasa assembly menunjukkan konstanta atau storage area pada suatu program.
Assembler Directive
Statement jenis ini tidak merepresentasikan instruksi mesin ke dalam suatu objek program atau mengalokasikan storage untuk konstanta atau variable program. Sebaliknya, statement ini secara langsung mengarahkan assembler untuk mengambil alih aksi selama proses assembling program. Statement ini digunakan untuk menunjukkan bagaimana input program assembly dibentuk.

B. Proses Assembly
Untuk membangun skema proses translasi dari satu bahasa ke bentuk lainnya, hal pertama yang harus dilakukan adalah mengindentifikasikan tugas-tugas dasar yang harus dikerjakannya dalam proses translasi tersebut.
1. Proses Translasi
Secara umum model proses translasi dapat direpresentasikan sebagai berikut :
Model di atas diterapkan untuk mentranslasikan dari sautu bahasa pemrograman ke bentuk lain, translasi dari satu bahasa natural (Inggris, Perancis) ke bentuk coding / decoding pesan rahasia. Untuk mengaplikasikan model di atas, kita perlu menentukan komponen-komponen yang dibutuhkan selama proses analisis dan sintesis.
2. Skema Sederhana Assembly
A. Fase Analysis
Mengisolasikan / memisahkan label, mnemonic operation code dan operand field yang ada pada statement
Memasukkan simbol yang ditemukan pada label field dan alamat yang akan dituju machine word ke dalam Symbol table.
Melakukan validasi menmonic operation code dengan melihat pada Mnemonic table
Menentukan alamat yang dibutuhkan statement berdasar pada mnemonic operation code dan operand field pada statement. Proses penghitungan alamat awal machine word mengikuti target code yang dibangkitkan untuk statement tersebut (Location Counter (LC) processing)
B. Fase Syntesis
Menghasilkan machine operation code yang berkorespondensi dengan mnemonic operation code yang telah dicari pada mnemonic table
Menghasilkan alamat operand dari Symbol table
Melakukan sintesa instruksi machine
3. Pass Structure pada Assembler
Pada pembahasan di atas, kita telah mengidentifikasikan fungsi fase analisi dan sintesis dari assembler. Sekarang kita akan melihat fase program assembly ini berdasarkan statment demi statement hingga menghasilkan target program. Translator pass adalah penelusuran secara menyeluruh source program input oleh translator hingga mencapai equivalent representation. Translasi yang dilakukan statement demi statement disebut single pass translation, sedangkan translasi yang dilakukan sekelompok statement yang membutuhkan banyak pass disebut multipass translation.
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.
B. Single Pass Translation
Dalam single pass translation, pemecahan forward reference dapat ditangani sebagai berikut : instruksi yang memuat forward reference dapat ditinggalkan dalam keadaan tidak selesai hingga alamat reference symbol diketahui. Untuk meletakkan alamat operand pada bagain akhir dapat disimpan pada Table of Incomplete Instruction (TII). Di akhir program assembly, semua masukan pada table dapat diproses secara lengkap sesuai instruksinya.
Secara umum dikenal ada dua macam tipe single pass translation / one pass, yaitu :
-single pass translation yang menghasilkan kode objek langsung ke memori, yang mengakibatkan eksekusi menjadi lebih cepat.
-single pass translation yang menghasilkan berbagai tipe pemrograman untuk keperluan eksekusi selanjutnya.

C. Perancangan Two Pass Assembler
A. Pass I
-memisahkan symbol, mnemonic opcode dan operand field
-menentukan storage yang dibutuhkanuntuk setiap statement bahasa assembly dan meng--update location counter
-membangun symbol table
-merancang intermediate code untuk setiap statement bahasa assembly
B. Pass II
-mensintesa target code dengan memproses intermediate code yang dibangkitkan selama pass I .

0 komentar:

Posting Komentar

____________


ShoutMix chat widget