1 / 25

Program Assembly SIC/XE

Fitur Assembler Berorientasi Mesin (SIC/XE Assembler) Format Instruksi, Addressing Mode, dan Relokasi Program. Program Assembly SIC/XE. extended format. immediate addressing. indirect addressing. Program Assembly SIC/XE. Program Assembly SIC/XE. Keuntungan Addressing Mode SIC/XE.

banyan
Télécharger la présentation

Program Assembly SIC/XE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fitur Assembler Berorientasi Mesin (SIC/XE Assembler)Format Instruksi, Addressing Mode, dan Relokasi Program

  2. Program Assembly SIC/XE extended format immediate addressing indirect addressing

  3. Program Assembly SIC/XE

  4. 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 MengenaliAddressing 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

  10. SIC/XE Assembly dengan Object Code

  11. SIC/XE Assembly dengan Object Code

  12. Immediate Addressing Mode 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

  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 120003LDB #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 45001AENDFILLDA 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 • 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 disp = (0036)16-(0033)16 = (0003)16

  17. Immediate + PC Relative Addressing Mode 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 disp = (0033)16-(0006)16 = (002D)16

  18. (3C)16 1 0 0 0 1 0 (003)16 (3E)16 (2)16 (003)16 disp = (0030)16-(002D)16 = (0003)16 Indirect + PC Relative Addressing Mode Instruction: 70 002A J @RETADR 3E2003 80 002D EOF BYTE C’EOF’ 454F46 95 0030 RETADR RESW 1

  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. Hal-hal yang Perlu Direlokasi • 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)

  23. Cara Relokasi Alamat • 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.

  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. 5 half-bytes Object Program yang dapat Direlokasi 15 +JSUB RDREC 35 +JSUB WRREC 65 +JSUB WRREC

More Related