ASSEMBLER #2 MK. PEMROGRAMAN SISTEM

Slides:



Advertisements
Presentasi serupa
Pilihan Perancangan Assembler One-Pass dan Multi-Pass Assembler
Advertisements

BAB III BAHASA DAN PENGEMBANGAN PROGRAM MIKROPROSESOR
Manajemen Memory 1 Manajemen Memory Sederhana dan Swapping
Pengayaan Software/Hardware dan Pengantarmukaan
Arsitektur Komputer “Instruksi Set Arsitektur”
Teknik Kompilasi Febuari 2013.
MANAJEMEN MEMORY.
Chapter 20 Pembentukan Kode.
Kode MK : TI Revisi Terakhir : Sesi 8 Tim Jurusan Mode Pengalamatan dan Set Instruksi.
Instruksi macro Instruksi macro (macro) Contoh:
TEKNIK KOMPILASI.
ARSITEKTUR SET INSTRUKSI
ARSITEKTUR SET INSTRUKSI
Organisasi dan Arsitektur Komputer
ARSITEKTUR SET INSTRUKSI
Pengantar Bahasa Rakitan
Bahasa Mesin dan Assembly
Pertemuan 4 (Set Instruksi ARM)
Fitur Assembler yang Tidak Berorientasi Mesin Literal, Statement yang Mendefinisikan Simbol, Ekspresi, Blok Program, Control Sections dan Program Linking.
Pengantar Teknik Kompilasi
Pertemuan 13 Code Genarator
Pertemuan 1 & 2 Pendahuluan
Instruksi dalam CPU.
Pengenalan Assembler.
ARSITEKTUR SET INSTRUKSI
Set Instruksi:.
Manajemen Memori.
BAB IV Teknik Pemrograman
MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu:
Pertemuan 3 (Bahasa Assembly)
PENGANTAR TEKNIK KOMPILASI
Teknik Kompilasi “Translator”
Bahasa Pemprograman Dasar
Pertemuan III SET Instruksi.
Matakuliah : H0182/Pemrograman Sistem Tahun : 2006 Versi : 01
PENGANTAR LOGIKA & TEKNIKPEMROGRAMAN
ARSITEKTUR SET INSTRUKSI
Analisis semantik, kode antara dan pembangkitan kode
Mode Pengalamatan &Jenis-Jenis Instruksi
ORGANISASI & ARSITEKTUR KOMPUTER 2 SET INSTRUKSI IBP WIDJA, MT
ARSITEKTUR KOMPUTER.
Pengenalan Assembler.
Pengantar Teknik Kompilasi
Set Instruksi:.
Arsitektur Komputer II
KONSEP DASAR PERANGKAT LUNAK
ASSEMBLER #1 MK. PEMROGRAMAN SISTEM
ASSEMBLER #3 MK. PEMROGRAMAN SISTEM
Teknik Kompilasi “Translator”
Micro-programmed Control (Kontrol Termikroprogram)
TEK 2524 Organisasi Komputer
Pengantar Bahasa Rakitan
ARSITEKTUR SET INSTRUKSI
Proses kompilasi COMPILATOR.
Pengantar Bahasa Rakitan
PENGANTAR LOGIKA & TEKNIK PEMROGRAMAN
Organisasi Komputer II
Ilustrasi kinerja CPU.
TEKNIK KOMPILASI PERTEMUAN II.
Organisasi Komputer II
TEKNIK KOMPILASI Pertemuan III.
ARSITEKTUR SET INSTRUKSI
MANAJEMEN MEMORY.
Pengantar Teknik Kompilasi
Pengantar Teknik Kompilasi
Pengantar Bahasa Rakitan
MANAJEMEN MEMORY.
ARSITEKTUR SET INSTRUKSI
Karakteristik Set Instruksi 14 JP. Karakteristik Set Instruksi Pengertian Set Instruksi Set instruksi adalah kumpulan dari instruksi yang dapat dijalankan.
Transcript presentasi:

ASSEMBLER #2 MK. PEMROGRAMAN SISTEM Jurusan Sistem Komputer-S1 Universitas Gunadarma

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.

Keuntungan Memprogram Menggunakan Assembly Keuntungan Assembly dibandingan dengan bahasa mesin adalah penggunaan symbolic operand

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 https://kbbi.web.id/analisis 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); https://kbbi.web.id/sintesis sintesis/sin·te·sis/ /sintésis/ n 1 paduan (campuran) berbagai pengertian atau hal sehingga merupakan kesatuan yang selaras

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)

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.

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

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)

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

Equivalent target code Pass Structure Assembly Translasi statement demi statemet program assembly Assembly languange statement Analysis Equivalent target code Synthesis Contoh : Forward reference !!!

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

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

Two pass assembly Data Structures TP SP Pass II Pass I Data Access Intermediate Code Control Transfer

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.

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

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

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.

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 .

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

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.

Flowchart Pass 1 Assembler

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

Pass I Assembler (cont.) Struktur data yang digunakan pada Pass I Assembler 17