CS54 System Software 3 1 0 4
CS54 System Software 3 1 0 4
CS54 System Software 3 1 0 4
AIM
To have an understanding of foundations of design of assemblers, loaders,
linkers, and macro processors.
OBJECTIVES
UNIT I INTRODUCTION 8
System software and machine architecture – The Simplified Instructional
Computer (SIC) - Machine architecture - Data and instruction formats -
addressing modes - instruction sets - I/O and programming.
UNIT II ASSEMBLERS 10
Basic assembler functions - A simple SIC assembler – Assembler
algorithm and data structures - Machine dependent assembler features -
Instruction formats and addressing modes – Program relocation - Machine
independent assembler features - Literals – Symbol-defining statements –
Expressions - One pass assemblers and Multi pass assemblers - Implementation
example - MASM assembler.
UNIT III LOADERS AND LINKERS 9
Basic loader functions - Design of an Absolute Loader – A Simple
Bootstrap Loader - Machine dependent loader features - Relocation – Program
Linking – Algorithm and Data Structures for Linking Loader - Machine-
independent loader features - Automatic Library Search – Loader Options -
Loader design options - Linkage Editors – Dynamic Linking – Bootstrap Loaders -
Implementation example - MSDOS linker.
REFERENCES
1. D. M. Dhamdhere, “Systems Programming and Operating Systems”, Second
Revised Edition, Tata McGraw-Hill, 2000.
2. John J. Donovan “Systems Programming”, Tata McGraw-Hill Edition, 2000
3. John R. Levine, Linkers & Loaders – Harcourt India Pvt. Ltd., Morgan
Kaufmann
Publishers, 2000..
0032
(Using C)
1. Implement a symbol table with functions to create, insert, modify,
search,
and display.
2. Implement pass one of a two pass assembler.
3. Implement pass two of a two pass assembler.
4. Implement a single pass assembler.
5. Implement a two pass macro processor
6. Implement a single pass macro processor.
7. Implement an absolute loader.
8. Implement a relocating loader.
9. Implement pass one of a direct-linking loader.
10. Implement pass two of a direct-linking loader.
11. Implement a simple text editor with features like insertion /
deletion of a
character, word, and sentence.
12. Implement a symbol table with suitable hashing