Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehFaizal Kevin Telah diubah "10 tahun yang lalu
1
Fitur Assembler Berorientasi Mesin (SIC/XE Assembler) Format Instruksi, Addressing Mode, dan Relokasi Program
2
Program Assembly SIC/XE indirect addressing immediate addressing extended format
3
Program Assembly SIC/XE
5
Keuntungan Addressing Mode SIC/XE Instruksi register-to-register –Lebih singkat dari instruksi register-to-memory. –Tidak ada referensi memori. Immediate addressing mode –Tidak ada referensi memori. Operand sudah ada sebagai bagian dari instruksi. Indirect addressing mode –Menghindari perlunya instruksi lain. Relative addressing mode –Lebih singkat dari instruksi extended. –Relokasi program yang mudah.
6
Mengenai Format Instruksi Directive START menspesifikasi alamat awal program yang merupakan 0: program yang dapat direlokasi. Instruksi register-to-register: hanya mengkonversi mnemonic menjadi ekivalen bilangannya. –OPTAB: untuk opcode. –SYMTAB: di-load sebelumnya dengan nama register dan nilainya.
7
Mengenai Addressing Modes PC atau base relative addressing –Menghitung displacement. –Displacement harus cukup kecil agar bisa masuk pada field 12-bit (-2048..2047 untuk PC relative mode, 0..4095 untuk base relative mode). Format instruksi extended (4-byte) –Field 20-bit untuk displacement yang besar.
8
Cara Assembler Mengenali Addressing Mode Extended format:+op m Indirect addressing: op @m Immediate addressing: op #c Index addressing: op m,X Relative addressing: op m –Pilihan pertama: PC relative (dipilih secara acak) –Pilihan kedua: base relative (jika displacement invalid pada PC relative mode) –Pilihan ketiga: error message (jika displacement invalid pada kedua relative mode)
9
SIC/XE Assembly dengan Object Code
12
Instruction: 55 0020 LDA #3 010003 (00) 16 0 1 0 0 0 0 (003) 16 (01) 16 (0) 16 (003) 16 Instruction: 133 103C +LDT #4096 75101000 (74) 16 0 1 0 0 0 1 (01000) 16 (75) 16 (1) 16 (01000) 16 Immediate Addressing Mode
13
Extended Format Instruction: 15 0006 CLOOP +JSUB RDREC 4B101036 (48) 16 1 1 0 0 0 1 (01036) 16 (4B) 16 (1) 16 (01036) 16
14
PC Relative Addressing Mode Instruction: 10 0000 FIRST STL RETADR 17202D 12 0003 LDB #LENGTH 69202D : : 95 0030 RETADR RESW 1 (14) 16 1 1 0 0 1 0 (02D) 16 (17) 16 (2) 16 (02D) 16 PC ditambah setelah setiap instruksi diambil dan sebelum dieksekusi. Yaitu, PC berisi alamat instruksi berikutnya. disp = (0030) 16 -(0003) 16 = (002D) 16
15
PC Relative Addressing Mode Instruction: 15 0006 CLOOP +JSUB RDREC 4B101036 : : 40 0017 J CLOOP 3F2FEC 45 001A ENDFIL LDA EOF 032010 (3C) 16 1 1 0 0 1 0 (FEC) 16 (3F) 16 (2) 16 (FEC) 16 disp = (0006) 16 -(001A) 16 = (FFEC) 16
16
Base Relative Addressing Mode Instruction: 12 0003 LDB #LENGTH 69202D 13 BASE LENGTH : : 100 0033 LENGTH RESW 1 105 0036 BUFFER RESB 4096 : : 160 104E STCH BUFFER,X 57C003 (54) 16 1 1 1 1 0 0 (003) 16 (57) 16 (C) 16 (003) 16 disp = (0036) 16 -(0033) 16 = (0003) 16 PC relative tidak lagi dapat diterapkan BASE directive secara eksplisit memberi informasi kepada assembler bahwa base register akan berisi alamat LENGTH (gunakan NOBASE untuk invalidasi) LDB load alamat LENGTH ke dalam base register pada saat eksekusi
17
Instruction: 12 0003 LDB #LENGTH 69202D 13 BASE LENGTH 15 0006 CLOOP +JSUB RDREC 4B101036 : : 100 0033 LENGTH RESW 1 (68) 16 0 1 0 0 1 0 (02D) 16 (69) 16 (2) 16 (02D) 16 Immediate + PC Relative Addressing Mode disp = (0033) 16 -(0006) 16 = (002D) 16
18
Instruction: 70 002A J @RETADR 3E2003 80 002D EOF BYTE C’EOF’ 454F46 95 0030 RETADR RESW 1 Indirect + PC Relative Addressing Mode (3C) 16 1 0 0 0 1 0 (003) 16 (3E) 16 (2) 16 (003) 16 disp = (0030) 16 -(002D) 16 = (0003) 16
19
Alasan Relokasi Program Untuk menambah produktifitas mesin Ingin load dan jalankan beberapa program pada saat yang sama (multiprogramming) Harus dapat load program ke dalam memori jika ada ruang kosong Alamat awal program yang sebenarnya tidak diketahui sampai waktu load
20
Program Absolut Program dengan alamat awal yang dispesifikasi pada waktu assembly Pada contoh SIC assembly program Alamat mungkin invalid jika program di- load ke tempat lain. Instruction: 55 101B LDA THREE 00102D Dihitung dari alamat awal 1000
21
Program yang dapat Direlokasi
22
Perlu dimodifikasi: –Bagian alamat dari instruksi yang menggunakan absolute (direct) addresses. Tidak perlu dimodifikasi: –Instruksi register-to-register (tidak ada referensi memori) –PC atau base-relative addressing (relative displacement tetap sama, tidak bergantung pada alamat awal yang berbeda) Hal-hal yang Perlu Direlokasi
23
Untuk Assembler –Untuk label alamat, alamatnya ditentukan relatif terhadap awal program (alasan untuk START 0) –Membuat record modifikasi untuk menyimpan lokasi awal dan panjang field alamat yang akan dimodifikasi. Untuk loader –Untuk setiap record modifikasi, tambahkan alamat awal program yang sebenarnya ke field alamat pada waktu load. Cara Relokasi Alamat
24
Format Record Modifikasi Satu record modifikasi untuk setiap alamat yang akan dimodifikasi Panjangnya disimpan dengan format half-bytes (20 bit = 5 half-byte) Lokasi awal merupakan lokasi byte yang berisibit-bit paling kiri dari field alamat yang akan dimodifikasi. Jika field berisi half-byte dengan nilai ganjil, lokasi awal dimulai dari tengah byte pertama.
25
Object Program yang dapat Direlokasi 15 +JSUB RDREC 5 half-bytes 35 +JSUB WRREC 65 +JSUB WRREC
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.