CS2422 Assembly Language and System Programming Linking Loader Department of Computer Science National Tsing Hua University.

Slides:



Advertisements
Similar presentations
Loaders Dr. Monther Aldwairi 10/21/2007 Dr. Monther Aldwairi.
Advertisements

1 Loaders and Linkers Chapter 3 System Software An introduction to systems programming Leland L. Beck.
1 Loaders and Linkers Chapter 3 System Software An introduction to systems programming Leland L. Beck.
Chapter 3 Loaders and Linkers
Linkage Editors Difference between a linkage editor and a linking loader: Linking loader performs all linking and relocation operations, including automatic.
3. Loaders & Linkers1 Chapter III: Loaders and Linkers Chapter goal: r To realize how a source program be loaded into memory m Loading m Relocation m Linking.
Chapter 3 Loaders and Linkers
COP 3402 Systems Programming Dr. Ali Orooji School of EECS University of Central Florida.
Chapter 3 Loaders and Linkers. Purpose and Function Places object program in memory Linking – Combines 2 or more obj programs Relocation – Allows loading.
Loader. Role of Loader Source Program Translator Object Program Loader Object program ready for execution Memory Translator – Assembler/Compiler.
Machine Independent Assembler Features
Loaders and Linkers Object Program contains the information:
The assembler is the system program that translate source code written in assembly language to object code( Machine Language) and other information for.
Machine-Independent Loader Features
Chap 3 Loaders and Linkers. Object program contains translated instructions and data values from the source program. Loading, which brings the object.
1 Machine-Independent Features Automatic Library Search automatically incorporate routines from a subprogram library Loading Options.
Chih-Hung Wang Chapter 2: Assembler (Part-1) 參考書目 Leland L. Beck, System Software: An Introduction to Systems Programming (3rd), Addison-Wesley, 1997.
CS2422 Assembly Language & System Programming January 2, 2007.
Assembler – Assembler Design Options. One-Pass Assemblers (1/2) Main problem  Forward references Data items Labels on instructions Solution  Data items:
Loader- Machine Independent Loader Features
CS2422 Assembly Language & System Programming December 22, 2005.
Assemblers Dr. Monther Aldwairi 10/21/20071Dr. Monther Aldwairi.
An introduction to systems programming
1 Chapter 3 Loaders and Linkers Source Program Assembler Object Code Loader Executable Code Linker.
Loader- Machine Dependent Loader Features
Machine-Independent Assembler Features
Assembler (Basic Functions)
Assembler – Machine Independent Features. Literals Design idea  Let programmers to be able to write the value of a constant operand as a part of the.
CS2422 Assembly Language & System Programming December 14, 2006.
A Simple Two-Pass Assembler
Assemblers.
Chapter 1 Computer architecture Languages: machine, assembly, high
CPS4200 System Programming 2007 Spring 1 Systems Programming Chapter 2 Assembler II.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
PART I SISTEM UTILITIES LECTURE 4.1 LINK_LOAD Ştefan Stăncescu 1.
CS2422 Assembly Language and System Programming Assembler Design Options Department of Computer Science National Tsing Hua University.
1 Assemblers System Programming by Leland L. Beck Chapter 2.
Computer Science 210 Computer Organization More on Assembler.
2 : Assembler 1 Chapter II: Assembler Chapter goal: r Introduce the fundamental functions that any assembler must perform. m Assign machine address m Translate.
Chapter - 3 Loaders & Linkers. Overview of Chapter 3 Basic Loader Functions Design Issues of: An Absolute Loader Simple Bootstrap Loader Machine-Dependent.
Loader and Linker.
Assembler Design Options One-Pass and Multi-Pass Assemblers.
Linking Loader untuk SIC/XE Machine. Lebih Lanjut mengenai Absolute Loader Shortcoming of an absolute loader –Programmer needs to specify the actual address.
UNIT III LOADERS AND LINKERS. This Unit gives you… Basic Loader Functions Machine-Dependent Loader Features Machine-Independent Loader Feature Loader.
CC410: System Programming Dr. Manal Helal – Fall 2014 – Lecture 10 – Loaders.
CC410: System Programming Dr. Manal Helal – Fall 2014 – Lecture 4 - Assembler 1.
CC410: System Programming Dr. Manal Helal – Fall 2014 – Lecture 10 –Linkers.
CC410: System Programming Dr. Manal Helal – Fall 2014 – Lecture 9 - Assembler 4.
Computer Science 210 Computer Organization
System Programming and administration
System Software by Leland L. Beck Chapter 2
Chapter 9 : Assembler Design Options
Assembler Design Options
Assembler Design Options
Computer Science 210 Computer Organization
Loaders and Linkers CSCI/CMPE 3334 David Egle.
Loaders and Linkers: Features
Machine Independent Features
Loaders and Linkers.
Assembler Design Options
A Simple Two-Pass Assembler
Optional Assembler Features 2
System Programming by Leland L. Beck Chapter 2
Machine Independent Assembler Features
Loaders and Linkers.
Chapter 1 Computer architecture Languages: machine, assembly, high
Machine Independent Assembler Features
An introduction to systems programming
UNIT III LOADERS AND LINKERS
Chapter 3 Loaders and Linkers
Presentation transcript:

CS2422 Assembly Language and System Programming Linking Loader Department of Computer Science National Tsing Hua University

1 Today ’ s Topics  Beck ’ s Section 3.2.3: Algorithm and Data Structure for a Linking Loader

2 Linking Loader  Input: a set of object programs to be linked  Two passes (similar to assembler) Pass 1: Assign addresses to all external symbols Pass 2: Perform actual loading, relocation, linking  ESTAB (external symbol table) + +

3 Pass 1 Program Logic  Pass 1: Assign addresses to all external symbols  Variables and data structures PROGADDR (program load address) from OS CSADDR (control section address) CSLTH (control section length) ESTAB  Figure 3.11(a) Process Header and Define records

4 begin get PROGADDR from operating system set CSADDR to PROGADDR (for first control sect.) while not end of input do begin read next input record (Header record for control section) set CSLTH to control section length search ESTAB for control section name if found then set error flag (duplicate external symbol) else enter control section name into ESTAB with value CSADDR Figure 3.11(a)

5 while record type  'E' do read next input record if record type = ‘D’ then for each symbol in the record do search ESTAB for symbol name if found then set error (dup external symbol) else enter symbol+value into ESTAB (CSADDR + indicated address) end {for} end {while  'E'} add CSLTH to CSADDR (starting address for next control section) end {while not EOF) end {Pass 1} Figure 3.11(a)

6 Pass 2 Program Logic  Pass 2: Perform actual loading, relocation, and linking  Figure 3.11(b) Process Text and Modification record  Modification record Lookup the symbol in ESTAB  End record for a main program Transfer address

7 begin set CSADDR to PROGADDR set EXECADDR to PROGADDR while not end of input do read next input record (Header record) set CSLTH to control section length while record type  'E' do begin read next input record if record type = 'T' then if object code is in character form, convert into internal rep. enter object code to location (CSADDR + specified address) end {if 'T'} Figure 3.11(b)

8 else if record type = 'M' then search ESTAB for modifying symbol if found then add or subtract value at loc (CSADDR + specified address) else set error (undefined external symbol) end {if ‘M’} end {while  'E'} if address is specified {in End record} then set EXECADDR to (CSADDR + specified addr) add CSLTH to CSADDR end {while not EOF} jump to location given by EXECADDR (to start execution of loaded program) end {Pass 2} Figure 3.11(b)

9 Improve Efficiency  Use local search instead of multiple searches of ESTAB for the same symbol Assign a reference number to each external symbol Use reference number in Modification records  Implementation 01: Control section name Other: External reference symbols Need only read once and use an array to track  Example (Fig. 3.12)

10 Figure 3.12 (1/3)

11 Figure 3.12 (2/3)

12 Figure 3.12 (3/3)