Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehYandi Bambang Setiawan Telah diubah "6 tahun yang lalu
1
ASSEMBLER #2 MK. PEMROGRAMAN SISTEM
Jurusan Sistem Komputer-S1 Universitas Gunadarma
2
Tahapan Memprogram Menggunakan Assembly
Identifikasi informasi yang diperlukan untuk melakukan suatu tugas. Merancang struktur data yang sesuai untuk merekam informasi. Tentukan proses yang diperlukan untuk mendapatkan dan mempertahankan informasinya Tentukan proses yang diperlukan untuk melakukan tugas.
3
Keuntungan Memprogram Menggunakan Assembly
Keuntungan Assembly dibandingan dengan bahasa mesin adalah penggunaan symbolic operand
4
Proses Assembly Proses Penterjemahan + = Analysis of source text
Synthesis of target text Translation from Source Text to Target Text + = Phase Analysis : mencari arti dari source text, dengan menggunakan struktur tatabahasa (literal, syntax, semantic) Literal = arti atau terjemahan, syntax = aturan menulis kalimat, semantic = arti sebuah kalimat Phase Synthesis : pemilihan machine operation code yang sesuai dengan mnemonic code analisis/ana·li·sis/ n 1 penyelidikan terhadap suatu peristiwa (karangan, perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya (sebab-musabab, duduk perkaranya, dan sebagainya); sintesis/sin·te·sis/ /sintésis/ n 1 paduan (campuran) berbagai pengertian atau hal sehingga merupakan kesatuan yang selaras
5
Fase Synthesis Perintah assembly MOVER BREG,ONE
Alamat satu word memori dengan nama ONE terkait (tergantung pada program sumber dibuat tersedia oleh fase analisis) Kode op mesin sesuai dengan mnemonik MOVER (tidak tergantung pada program sumber tergantung bahasa assembly) Sehingga dalam fase ini menggunakan dua struktur data: Simbol Tabel (nama, alamat) - dibangun berdasarkan fase analisis Tabel Mnemonik (mnemonik, opcode, panjang)
6
Fase Analysis Fungsi utamanya adalah membangun tabel simbol.
Konsep ”Mengalokasi Memori” Untuk menerapkan alokasi memori struktur data disebut location counter (LC). LC selalu dibuat untuk memuat alamat dari sejumlah word memori berikutnya ke dalam program target. Menetapkan nilai awal ke suatu konstanta yang ditentukan pada perintah START. Untuk memperbarui isi LC, kebutuhan fase analisis untuk mengetahui panjang instruksi yang berbeda.
7
Struktur Data Assembler
Mnemonic Opcode Length ADD 01 1 SUB 02 Mnemonic Table Source Program Target Program Analysis Phase Synthesis Phase Symbol Address AGAIN 104 N 113 Symbol Table Catatan : Data Access Control Transfer
8
Skema Sederhana Assembly
Phase Analysis Mengisolasi/memisahkan label, mnemonic opcode 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 mnemonic opcode dengan melihat pada Mnemonic Table Menentukan alamat yang dibutuhkan statement berdasar pada mnemonic opcode dan operand field pada statement. Proses perhitungan alamat awal machine word mengikuti target code yang dibangkitkan untuk statement tersebut (Location Counter-LC processing)
9
Skema Sederhana Assembly
Phase Syntesis Menghasilkan machine operation code yang berkorespondensi dengan mnemonic opcode yang telah dicari pada tabel mnemonic. Menghasilkan alamat operand dari Symbol Tabel. Melakukan sintesa instruksi machine
10
Equivalent target code
Pass Structure Assembly Translasi statement demi statemet program assembly Assembly languange statement Analysis Equivalent target code Synthesis Contoh : Forward reference !!!
11
Pass Structure Assembly (Cont…
Dalam pemrograman Assembly sering ditemui Forward Reference, yaitu symbol/label yang baru muncul setelah program tersebut menjadi acuan (lihat contoh pada slide sebelumnya…) Solusi untuk forward reference adalah melakukan proses terhadap source statement lebih dari satu kali secara beberapa tahap atau dikenal dengan konsep translator pass Translator Pass adalah penelusuran secara menyeluruh source program input oleh translator hingga mencapai equivalent representation Single Pass Translation, translasi yang dilakukan statement demi statement Multi/Two Pass Translation, translasi yang dilakukan sekelompok statement yang membutuhkan banyak pass
12
Struktur Pass Assembly
Two Pass Translation Dapat menangani forward reference dengan mudah. Proses Location Counter LC dilakukan pada pass pertama dan simbol didefinisikan dalam program yang dimasukkan ke dalam tabel simbol. Pass kedua mensintesis bentuk target menggunakan informasi alamat yang ditemukan di tabel simbol. Akibatnya, pass pertama melakukan analisis sumber program sedangkan pass kedua melakukan sintesis target program
13
Two pass assembly Data Structures TP SP Pass II Pass I
Data Access Intermediate Code Control Transfer
14
Skema Multi/ Two pass Translation assembly
Source program Pass I Pass II Symbol Table Target program Intermediate code Unit pada Source Program mentranslasikan semua bagian program. Pada fase analisis (pass I), proses LC dikerjakan, simbol yang didefinisikan pada program dimasukkan ke dalam Symbol Table. Selama Pass II, statement diproses untuk mensintesa target program. Semua simbol dan alamat yang ada di symbol table tidak akan menimbulkan forward reference. “equivalent representation” dilakukan dengan elaborasi pada hasil analisa source statement untuk mencegah duplikasi (pada saat pemisahan field label, mnemonic opcode dan operand field) yang direpresentasikan dalam bentuk intermediate code. Karena adanya intermediate code ini menjadi penyebab two pass lebih lambat dibandingan single pass.
15
Single Pass Translation
Solusi forward reference dengan single pass translation adalah dengan cara: meninggalkan instruksi yang memuat forward reference dalam keadaan tidak selesai hingga alamat reference symbol diketahui. Alamat operand pada bagian akhir disimpan pada Table Incomplete Instruction (TII) Di akhir program, semua masukkan pada table diproses secara lengkap Keuntungan : setiap source statement hanya diproses satu kali Kekurangan : membutuhkan area storage yang besar karena fase analysis dan fase synthesis dijalankan bersamaan
16
Perancangan Two Pass Assembler
Pass I Memisahkan symbol, mnemonic code dan operand field Menentukan kebutuhan storage untuk setiap assembly languange statement dan update location counter (LC) Membangun symbol table Merancang intermediate code untuk setiap assembly languange statement Pass II Mensintesa target code dengan memproses intermediate code yang digenerate pada Pass I
17
Single Pass Translation
Pengolahan LC dan konstruksi tabel simbol diproses seperti dalam two pass translation. Masalah forward references dikerjakan menggunakan proses yang disebut ”backpatching” Field operand dari sebuah instruksi yang berisi forward references dibiarkan kosong pada awalnya. Alamat dari simbol forward references dimasukkan ke dalam bidang ini saat definisinya ditemukan.
18
Advanced Assembler Directives
ORIGIN ORIGIN <address spec> Dimana <address spec> adalah <operand spec> atau <constant> Directive ini mengindikasikan bahwa LC seharusnya di set ke address <address spec>. Hal ini berguna ketika target tidak terdiri dari memory words yang berurutan .
19
Advanced Assembler Directives
EQU <symbol> EQU <address spec> Dimana <address spec> adalah <operand spec> atau <constant> Mendefinisikan symbol dengan <address spec>. LTORG Mengijinkan programmer untuk menempatkan suatu literal . Secara default, assembler menempatkan setelah END statement
20
Literals Pada setiap LTORG statement dan juga END statement, assembler mengalokasikan memori ke literals dari literal pool. Pool berisi semua literals yang digunakan dalam program dimulai dari awal program atau dimulai dari akhir LTORG statement.
22
Flowchart Pass 1 Assembler
23
Pass I Assembler Dalam Pass I assembler digunakan beberapa table :
OPTAB : table mnemonic opcode dan informasi lain yang terkait SYMTAB : symbol table LITTAB : literal table Struktur data yang digunakan pada Pass I Assembler Mnemonic opcode Class Machine opcode Length LOAD 1 (Imperative) 04 1 DS 2 (Declarative) R#7 - START 3 (Directive) R#11 STORE 05 OPTAB
24
Pass I Assembler (cont.)
Struktur data yang digunakan pada Pass I Assembler 17
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.