Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pilihan Perancangan Assembler One-Pass dan Multi-Pass Assembler.

Presentasi serupa


Presentasi berjudul: "Pilihan Perancangan Assembler One-Pass dan Multi-Pass Assembler."— Transcript presentasi:

1 Pilihan Perancangan Assembler One-Pass dan Multi-Pass Assembler

2 One-Pass Assembler •One-pass assembler digunakan ketika –Second pass source program perlu atau ingin dihindari –storage eksternal untuk file intermediate antara dua pass berjalan lambat atau tidak memudahkan untuk digunakan •Masalah utama: forward reference ke data dan instruksi •Satu cara mudah untuk mengeliminasi masalah ini: menuntut semua area didefinisikan sebelum di-referensi. –Mungkin dilakukan, walaupun tidak memudahkan, jika dilakukan pada data item. –Forward jump untuk instruction item tidak dapat dieliminasi dengan mudah.

3 Contoh Program untuk One-Pass Assembler

4

5

6 Load-and-Go Assembler •Load-and-go assembler membuat object code- nya di memori untuk immediate execution. •Tidak ada object program yang dituliskan, loader tidak diperlukan. •Berguna untuk sistem yang berorientasi pada pengambangan dan pengujian program sehingga efisiensi proses assembly merupakan pertimbangan penting.

7 Cara Menangani Forward Reference •Load-and-go assembler –Menghilangkan alamat operand jika simbol belum didefinisikan. –Memasukkan simbol yang tak terdefinisi ini ke dalam SYMTAB dan memberi keterangan bahwa belum terdefinisi. –Menambahkan alamat dari alamat operand ini ke daftar forward reference yang berhubungan dengan SYMTAB entry. –Scan daftar referensi menyisipkan alamat ketika definisi simbol tersebut ditemukan. –Melaporkan error jika masih ada SYMTAB entry yang menunjukkan simbol-simbol tak terdefinisi pada akhir program. –Menelusuri SYMTAB untuk mencari simbol yang diberi nama pada statement END dan melompat ke lokasi ini untuk mulai eksekusi jika tidak ada error.

8 Setelah scan baris 40 Object Code pada Memori dan SYMTAB

9 Setelah scan baris 160

10 One-Pass Assembler yang Menghasilkan Object Program •Jika operand berisi simbol yang tak terdefinisi, gunakan 0 sebagai alamat dan tuliskan Text record ke object program. •Forward reference dimasukkan ke dalam list (daftar) seperti pada load-and-go assembler. •Ketika definisi simbol ditemukan, assembler membuat satu Text record lain dengan alamat operand yang benar untuk setiap entry pada daftar referensi. •Ketika di-load, alamat 0 yang tidak benar akan di-update oleh Text record berikutnya yang berisi definisi simbol.

11 Object Program dari One-Pass Assembler

12 Multi-Pass Assembler •Tidak memperbolehkan forward references pada definisi simbol: –Pembatasan ini tidak merupakan masalah yang serius. –Forward reference cenderung menimbulkan kesulitan untuk orang yang membaca program. •Memungkinkan forward reference –Untuk memberikan flexibilitas yang lebih luas –Solusi: •Multi-pass assembler yang dapat melakukan pass sebanyak yang diperlukan untuk mengolah definisi simbol. •Hanya bagian program yang melibatkan forward reference pada definisi simbol yang di-save untuk multi-pass reading.

13 Multi-Pass Assembler •Untuk two pass assembler, forward reference pada definisi simbol tidak diperbolehkan: ALPHA EQU BETA BETA EQU DELTA DELTA RESW 1 •Alasan: definisi simbol harus diselesaikan pada pass 1. •Motivasi untuk menggunakan a multi-pass assembler –DELTA dapat didefinisikan pada pass 1 –BETA dapat didefinisikan pada pass 2 –ALPHA dapat didefinisikan pada pass 3

14 •Tabel simbol digunakan –untuk menyimpan definisi simbol yang memakai forward reference –untuk menunjukkan simbol yang bergantung pada nilai yang lain –untuk memfacilitasi evaluasi simbol •Untuk forward reference pada definisi simbol, di dalam SYMTAB disimpan: –nama simbol –pendefinisian ekspresi –jumlah simbol tak terdefinisi pada ekspresi yang mendefinisikan –simbol tak terdefinisi (ditandai dengan flag *) yang berhubungan dengan daftar simbol bergantung pada simbol tak terdefinisi ini. •Ketika simbol didefinisikan, secara rekursif kita dapat mengevaluasi ekspresi simbol, bergantung pada simbol yang baru didefinisi. Implementasi

15 Contoh Forward Reference

16 1 HALFSZ EQU MAXLEN/2 Satu simbol tak terdefinisi pada ekspresi yang mendefinsikan Ekpresi yang mendefinsikan Simbol tak terdefinisi depending list

17 2 MAXLEN EQU BUFEND-BUFFER Dua simbol tak terdefinisi pada ekspresi yang mendefinisikan Ekspresi yang mendefinisikan Simbol tak terdefinisi depending list

18 3 PREVBT EQU BUFFER-1 Ditambahkan ke list

19 4 BUFFER RESB 4096

20 5 BUFEND EQU *


Download ppt "Pilihan Perancangan Assembler One-Pass dan Multi-Pass Assembler."

Presentasi serupa


Iklan oleh Google