Jam Ne

Selasa, 21 Juni 2011

ASSEMBLER DIRECTIVE


Selain menyediakan mekanisme untuk menyatakan instruksi dalam suatu program, bahasa assembly memungkinkan programer untuk menetapkan informasi lain yang diperlukan untuk mentranslasikan source program ke dalam object program. Kita telah menyebutkan bahwa kita perlu untuk menetapkan nilai numerik ke tiap nama yang digunakan dalam program. Misalkan nama SUM digunakan untuk menyatakan nilai 200. Fakta ini mungkin disampaikan ke program assembler melalui pernyataan seperti
SUM EQU 200’
Pernyataan ini tidak menunjuk suatu instruksi yang akan dieksekusi pada saat object program dijalankan; sebenarnya, bahkan tidak akan muncul dalam object program. Hanya memberitahu assembler bahwa nama SUM seharusnya digantikan dengan nilai 200 kapanpun muncul dalam program. Pernyataan semacam itu, yang disebut assembler directive (atau perintah), digunakan oleh assembler pada saat mentranslasikan source program menjaadi object program.
 
Untuk menjalankan program pada komputer, maka kita perlu untuk menuliskan source codenya dalam bahasa assembly yang diperlukan, menetapkan semua informasi yang diperlukan untuk menghasilkan object program yang sesuai. Misalkan tiap instruksi dan tiap item data memiliki satu word memori. Juga asumsikan bahwa memori tersebut adalah byte addressable dan word lengthnya adalah 32 bit. Misalkan juga bahwa object program diload dalam memori utama sebagaimana yang ditunjukkan dalam Gambar 8.1. Gambar tersebut menujukkan alamat memori dimana instruksi mesin dan item data yang diminta didapatkan setelah program diload untuk eksekusi. Jika assembler adalah untuk menghasilkan object program sesuai dengan pengaturan ini, maka harus mengetahui :
·         Bagaimana menginterpretasikan nama tersebut
·         Dimana barns menempatkan instruksi tersebut dalam memori
·         Dimana harus menempatkan operand data dalam memori
Untuk mendapatkan informasi ini, source program dapat ditulis sebagaimana ditampilkan pada Gambar 8.2. Program dimulai dengan assembler directives. Kita telah membahas direktive Equate, EQU, yang menginformasikan pada assembler tentang nilai SUM. Assembler directive yang kedua, ORIGIN, menyatakan pada program assembler tempat untuk meletakkan blok data berikutnya di memori. Dalam hal ini, lokasi yang ditetapkan memiliki alamat 204. Karena lokasi ini diload dengan nilai 100 (yang merupakan bilangan entri dalam list), maka directive DATAWORD digunakan untuk menginfonnasikan pada assembler persyaratan ini. Dinyatakan bahwa nilai data 100 ditempatkan dalarn word memori pada alamat 204.
Pernyataan apapun yang menghasilkan instruksi atau data ditempatkan dalam lokasi memori dapat diberi label alamat memori. Label tersebut menetapkan suatu nilai yang setara dengan alamat lokasi tersebut. Karena pernyataan DATAWORD diberi label N, maka nama N ditetapkan dengan nilai 204. Kapanpun N digunakan pada sebagian program, maka akan digantikan dengan nilai tersebut. Menggunakan N sebagai label dengan cara tersebut ekuivalen dengan menggunakan assembler directive :
N EQU 204
Directive RESERVE menyatakan bahwa suatu blok memori 400 byte akan direserve untuk data, dan nama NUM1 dihubungkan dengan alamat 208. Directive initidak menyebabkan data apapun diload ke lokasi tersebut. Data dapat diload dalam memori menggunakan prosedur input.
 
Directive ORIGIN kedua menetapkan bahwa instruksi object program akan diload dalam memori mulai dari alamat 100. Diikuti dengan instruksi yang ditulis dengan mnemonic dan syntax yang sesuai. Pernyataan terakhir dalam source program adalah assembler directive END, yang menyatakan pada assembler bahwa ini merupakan akhir teks source program. Directive END menyertakan label START, yang merupakan alamat lokasi dimana eksekusi program dimulai.
Kita telah menjelaskan semua pernyataan dalam Gambar 8.2 kecuali RETURN. Ini merupakan assembler directive yang menyatakan titik dimana eksekusi program harus dihentikan. Pernyataan ini menyebabkan assembler menyisipkan suatu instruksi mesin yang sesuai yang mengembalikan kontrol ke sistem operasi komputer tersebut. Kebanyakan bahasa assembly meminta pernyataan dalam source program dituliskan dalam bentuk :
Label     Operation     Operand   Comment
Empat field tersebut dipisahkan oleh delimiter yang sesuai, biasanya satu atau lebih karakter kosong. Label adalah nama opsional yang dihubungkan dengan alamat memori dimana instruksi bahasa mesin yang dihasilkan dari pernyataan tersebut akan diload. Label juga dapat dihubungkan denagn alamat item data. Pada Gambar 8.2 terdapat lima label: SUM, N, NUM1, START, dan LOOP.
Field Operation berisi mnemonic OPcode dari instruksi yang dimaksud atau directive assembler. Field Operand berisi informasi pengalamatan untuk mengakses satu atau dua operand, tergantung pada tipe informasinya. Field Comment diabaikan oleh program assembly. Field tersebut digunakan untuk tujuan dokumentasi sehingga program lebih mudah dipahami.
Kita hanya telah memperkenalkan karakteristik bahasa assembly yang sangat dasar. Bahasa ini berbeda detil dan kompleksitasnya dari satu komputer ke komputer lain.

Tidak ada komentar:

Posting Komentar