0% found this document useful (0 votes)
59 views93 pages

Introduction to System Programming Concepts

Unit one and two sppu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views93 pages

Introduction to System Programming Concepts

Unit one and two sppu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Systems Programming and

Operating System
Unit -1
SPOS
System introduction
system programming is an art of designing and implementing system Programs. Unit- I

Programming
is
System
is Way to

Collection
instruct

Component of To perform
compute
College the
eg.

Various Task
SPOS
Software Hierarchy
Unit- I

Software
Software

is

System Application
Collection
Software Software
of
assist general user software developed
Many application for the specific goal
Programs
Operating System Media player

Assembler Adobe Reader


Foundation of system Programming
General Machine Structure
Need Of System Software

Hardware Management:

● System software, particularly the operating system (OS), acts as an intermediary between
the hardware and the user. It manages hardware resources such as the CPU, memory,
storage devices, and input/output devices.
● It ensures efficient and fair allocation of resources among various applications.

Application Support:

● Provides a platform for running application software.


● Offers necessary services and libraries required by applications to function correctly.

Network Management:

● Facilitates networking capabilities, enabling communication between computers and other


devices.
● Manages network connections, data transmission, and network security.
Need Of System Software

Device Drivers:

● Includes device drivers that facilitate communication between the OS and hardware devices.
● Ensures proper functioning and compatibility of peripheral devices like printers, scanners, and
network adapters.

Software Updates and Maintenance:

● Handles software updates, patches, and maintenance tasks to keep the system secure and
up-to-date.
● Ensures that the system software remains compatible with new hardware and applications.

File Management:

● Organizes and manages files on storage devices.


● Provides functionalities like file creation, deletion, reading, writing, and permissions
management.
SPOS
System introduction
Unit- I

System Program
are System Programming

Required Is an art of
for

Effective Execution designing and implementing


system programs
of

General user Programs


on

Computer System
Components of Systems SPOS

Programming: Unit- I

● Text Editors,
● Loader and Linker
● Assembler,
● Compiler,
● Macros,
● Debugger,
● Interpreter,
● Device Drivers,
● Operating System.
SPOS
System Software
Unit- I

Text Editor
With the help
is

program

Used for
of
Editing plain text Text Editor
files
You can Example
Write Your Program C | Java
Prog.
SPOS
System Software
Unit- I
Example
Text Editor Notepad

Text Editor
Editor
is
is
Program
Computer
Program
In which
That allows Character
Primary
to Elements String
A user
create and revise a
document
being Edited are
SPOS
System Software
Unit- I

Loders

is

Program Them for


As input Prepares Execution
That takes

Object Code
and Initiates

Execution
it
SPOS
System Software
Unit- I

Loders Functions

Allocation
Linking

Relocation Loading
SPOS
System Software
Unit- I

Loders Functions

Allocation
Loader allocates space for programs in main memory.
SPOS
System Software
Unit- I

Loders Functions

● Adjusting all address dependent location.

Relocation ● E.g. If we have two Programs Program A and Program B.

● Program A is saved at location 100.

● And user wants to save Program B on same location. That is


physically not possible.

● So loader relocates program B to some another free location


SPOS
System Software
Unit- I

Loders Functions

Linking
● If we have different modules of our
program.

● Loader links object modules with each


other.
SPOS
System Software
Unit- I

Loders Functions

Loading
Physically loading the machine instructions and data
into main memory.
SPOS
Assembler
Unit- I

Assembly Lang.
Program Assembler Machine Lang.

Translate
SPOS
Macro Processor
Unit- I

Macro

Allows

Defined @ once
Referred many times

To be

Sequence
of Source Lang. Code
SPOS
Macro Processor
Unit- I

Syntax

Macro Macro name [ set of parameters ]

// macro body
★ A macro processor takes a source with macro
Mend definition and macro calls and replaces each
macro call with its body
SPOS
5. Macro Processor
Unit- I

● It allows the programmer to write shorthand version of a program .

● Macro allows a sequence of source language code to be defined once


and then referred to by name each time it is to be referred.

● Each time this name Occurs in a program, the sequence of codes is


substituted at that point.
Macro code -- Example

Source Expanded source


MACRO STRG .

{
STA DATA1 . STA DATA1
STB DATA2
STB DATA2
STX DATA3
STX DATA3
MEND
.

{
.
STRG STA DATA1
. STB DATA2
STRG STX DATA3
. .
.
SPOS
Compiler
Unit- I

High Level Lang.


Compiler Low Level Lang.

Converts
SPOS
Compiler
Unit- I

Benefits of writing a program in a high level language

Increases productivity Machine Independence

It is very easy to write a program in a high A program written in a high level language is
level language machine independent.
SPOS
Debugger
Unit- I

Debugging tool helps programmer for testing and debugging programs

It provides some facilities:

•Setting breakpoints.

•Displaying values of variables.


7. Interpreter

● A Interpreter reads the source code one instruction or line at a this


line into machine code or some intermediate form and executes it.

Machine
Program
Interpreter language
statement
statement
Statement
execution
Fig.: Interpreter
8. Operating system (OS)

● An operating system (OS) is system software that


manages computer hardware, software resources, and
provides common services for computer programs.
9. Device driver (OS)
● Device driver is a computer program that
operates or controls a particular type of device
that is attached to a computer .
Assembly Language
SPOS
Assembly Language
Unit- I

● Assembly language is middle level language.

● An assembly language is machine dependent.

● It differs from computer to computer.

● Writing programs in assembly language is very easy as compared to machine(binary)


language
● Assembly lang. a symbolic representation of machine language.
● uses a mnemonic to represent each low-level machine instruction or
operation.
● Assemblers with different syntax for a particular CPU or instruction set
architecture.
● Example:- An instruction to add memory data to
a register
x86-family processor: add eax,[ebx],
whereas this would be written addl (%ebx),%eax
in the AT&T syntax used by the GNU Assembler.
SPOS
Assembly Language
Unit- I

Assembly language programming Terms


(LC)
Location Counter points to the next instruction

Literals Constant Values


SPOS
Assembly Language
Unit- I

Assembly language programming Terms

Symbols Name of variables and labels

Procedures Methods | Function


Elements of assembly language programs:
A. Basic features
B. Statement format
C. Operation code
[Link] features
• Assembly lang. Provides 3 basic features:
1. Mnemonic Operation Codes(Opcodes)
Ex: MOVER or MOVEM

2. Symbolic Operand:
Ex: DS – Declare as storage
DC – Declare as Constant

3. Data Declaration:
Ex: X DC ‘-10.5’
[Link] Format
Statement Format:
[Label] <opcode> <operand1> [ <operand2>..]

Label-Optional
Opcode- it contain symbolic operation code
Operand- Operand can also be a CPU register: AREG, BREG,CREG.
Example-
LOOP : MOVER AREG, ‘=5’
Machine supports 11 Different Operations
Symbolic opcode Remark
STOP Stop Excecution
ADD Operand 🡨 Oper1+Oper2
SUB Operand 🡨 Oper1- Oper2
MULT Operand 🡨 Oper1*Oper2
MOVER CPU Register🡨 Memory move
MOVEM Memory operand🡨 CPU register
COMP Set condition code
Comparison instruction sets a condition code
The condition code can be tested by BC
BC Branch on condition
Format for BC : BC <condition code spec.>, <Memory address>
1. LT-Less than
2. LE-Less or equal
3. EQ-Equal
4. GT-Greater than
5. GE-Greater or equal
6. ANY-Implies unconditional transfer of control
Machine supports 11 Different Operations
Symbolic Remark
opcode
DIV Operand 🡨 Oper1/Oper2
READ Operand2🡨 input value
PRINT Output🡨 operand2

First operand is always a CPU register


Second operand is always a memory operand
SPOS
Assembly Language
Unit- I

Assembly language Statements:

Imperative
Statements

Declarative/Declaration
Statements

Assembler Directive
SPOS
Assembly Language
Unit- I

❏ Imperative means mnemonics

❏ These are executable statements.


Imperative
Statements
❏ Each imperative statement indicates an action
to be taken during execution of the program
SPOS
Assembly Language
Unit- I

Declarative/Declaration Types
Statements

❏ Declaration statements are for


reserving memory for variables. DS DC

Declare Storage Declare Constant


❏ We can specify the initial value of a
variable.
SPOS
Assembly Language
Unit- I

Declare Storage

Syntax

[ Label ] DS < Constraint Specifying size >

Example
X DS 1
SPOS
Assembly Language
Unit- I

Declare Constant

Syntax

[ Label ] DC < Constraint Specifying values >

Example

X DC ‘5’
[Link] Directive
• Instructs the assembler to perform certain actions during assembly
of a program.
• A directive is a direction for the assembler
• A directive is also known as pseudo instruction
• machine code is not generated for AD.
[Link] Directive…
• START <Constant>
• It indicates that the first word of the m/c code should be placed in
the memory word with the address <CONSTANT>
[Link] Directive…
END [<OPERAND SPECIFICATION>]
• Optional, indicates address of the instruction where the
address of program should begin.
• By default, execution begins from the first instruction.
• It indicates the end of the source program.
• Class:AD
Advanced Assembler Directives
These directive include:
1. ORIGIN
2. EQU
3. LTORG
ORIGIN
• Useful when m/c code is not stored in consecutive memory location.
• ORIGIN <address specification>

• Operand or constant or expression containing an operand


• and a constant.

• Sets LC to the address given by <address specification>


• LC processing in a relative rather than absolute manner
ORGIN…..Example
Sr.N Assembly Program LC Remark
o
1 START 100 ORGIN LOOP+5,
2 MOVER BREG,’=2’ 100 Set LC to the value 106
(101+5=106)
3 LOOP MOVER AREG,N 101 Here, LOOP associated with address 101
4 ADD BREG,’=1’ 102
5 ORGIN LOOP+5
6 NEXT BC ANY,LOOP 106
ORGIN NEXT+2
7 ORGIN NEXT+2
Sets LC to the value 108
8 LAST STOP 108 (106+2=108)
9 N DC ‘5’ 109 Here, NEXT associated with address 106
10 END
EQU
Syntax:
<symbol> EQU <address specification>
Where,
<address specification> :can be operand specification or a constant
<symbol>: EQU Associates symbol with the <address specification>
Ex. BACK EQU LOOP
The symbol BACK is set to the address of LOOP
LTORG
• Permits a programmer to specify where literal should be placed.
• If the LTORG statement not present, literal are present at the END
statement
• At every LTORG Statement, memory is allocated to the literal of the
current pool of literals.
• The pool contains all literal used in the program since the start of the
program or since the last LTORG statement.
Literal and Constant
● A literal is an immediate operand
● A literal is an operand with constant value.
In the c-statement
int z=5;
x=y+5;
The constant value is ‘5’ known as literal.
● Literal can not be change during program execution
● They are specified using immediate addressing.
Literal and Constant…
● Literal in assembly language:
● Assembly instruction for 8086 with immediate operand

● MOV AX 15 (8086 instruction)

● But Hypothetical machine does not support immediate operand.


Literal and Constant…
● Handling a literal by our machine is as follows:

ADD AREG, X
ADD AREG,=‘6’ ----------------
-----------------
X DC ‘6’

Fig.: Handling of literal


SPOS
Assembly Language
Unit- I

Sample Assembly language Code

1. START 100
2. MOVER A REG, X
3. MOVER B REG, Y
4. ADD A REG, Y
5. MOVEM A REG, X
6. X DC ‘10’
7. Y DS 1
8. END
SPOS
Assembly Language
Code Unit- I
Identify types of statement 1. START 100

Sr. No IS DS AD 2. MOVER B REG, Y

1. 3. MOVER B REG, Y

2. 4. ADD A REG, Y

3.

4.
SPOS
Assembly Language
Code Unit- I
Identify types of statement 5. MOVEM A REG, X

Sr. No IS DS AD 6. X DC ‘10’

5. 7. Y DS 1

6. 8. End

7.

8.
Types of Assembler
3 Types of Assemblers
1. Load and Go-Assembler
2. One-pass Assembler
3. Two-pass Assembler
[Link] and Go-Assembler
• Simplest form of assembler
• It produces machine language as output which are loaded directly in
main memory and executed
• The ability to design code and test the different program
components in parallel
[Link] Pass Assembler
• Normally , it does not allow forward referencing.
• An assembler cannot generate m/c code for an assembly
instruction with FR.
• Machine code is generated ,after the address of variable used in
the instruction is known.
• Symbol table is used to record the address of the variables.
Assembler SPOS

Unit- I
Assembler SPOS

Unit- I

Output of Pass 1 | Pass 2 Assembler

Pass 1 Pass 2

Generates Generates

Intermediate Code Machine Code


Assembler SPOS

Unit- I

Two Pass
Assembler

Pass 1
Assembler Pass 2
Assembler
Labels
Determine Storage Generate the
Separate
Mnemonic Opcode Requirement machine code

Operand Fields Build the Symbol


Table
Working of pass I
Data structures required:
 MOT-(Mnemonic Opcode Table)-use to search the opcode
 POT- pseudo-opcode table
 Symbol table-use to search the symbol
 Literal table
 Pool table : starting literal number of each pool.
Mnemonic Opcode Table(MOT)
Mnemonic opcode m/c code for opcode Class Size of instructions
STOP 00 IS 1
ADD 01 IS 1
SUB 02 IS 1
MULT 03 IS 1
MOVER 04 IS 1
MOVEM 05 IS 1
COMP 06 IS 1
BC 07 IS 1
DIV 08 IS 1
READ 09 IS 1
PRINT 10 IS 1
Mnemonic Opcode Table(MOT)…
Mnemonic opcode m/c code for opcode Class Size of instructions

START 01 AD -----
END 02 AD -------
ORIGIN 03 AD -----
EQU 04 AD -------
LTROG 05 AD -----
DS 01 DL -------
DC 02 DL 1
AREG 01 RG -----
BREG 02 RG -------
CREG 03 RG -----
Pass 1 Assembler SPOS

Unit- I

Enhanced Machine Opcode Table


POT Table
• It used to process pseudo-opcodes,
• POT is the fixed length table.
• Pseudo-opcodes are also known as assembler directives.
• In pass 1 and pass2, using Pseudo Opcode, POT is consulted for processing some pseudo
opcode like DS, DC, START, END,USING DROP. etc.
Symbol Table
It contains:
1. Name of variable or a label or symbol
2. Its address
3. Its size in number of words
4. Example- SYMBOL TABLE
Index Symbol address
0 X 214

1 L1 202

2 NXT 207

3 BACK 202
Literal Table
It contains:
1. Value of the literal
2. Address of the memory location associated with
the literal. LITERAL TABLE
Example- Literal address
Index
0 5 205
1 2 206
2 1 210
3 2 211
4 4 215
POOL Table
This table contains the literal number of the starting literal of each literal
pool.

POOL TABLE
Index
0 0
1 2
2 4
Intermediate Code
• Is equivalent representation of source program.
• Pass-I of the assembler involve scanning of the source file.
• Every opcode is searched in MOT

• Every operand is searched in symbol table.

• It helps in avoiding:
1. Scanning of source file in PASS-II
2. Searching MOT and ST in PASS-II
Format of Intermediate Code
Each Mnemonic opcode field is represented as:
( Statement class , Machine code )

IS MOT entry of opcode


AD
DL
Ex.: MOVER (IS,04)
LTORG (AD, 05)
START(AD,01)
DC (DL,02)
Operand
( Operand Class, reference )

C: constant for a symbol or


S: symbol literal , reference
L: literal(variable) field contains the
RG: register index of the operand’s CC:condition
code entry in the symbol table or literal table
Steps for Two Pass Assembler
Two Pass assembler: Pass1 and Pass2
Steps for Pass1:
[Link] source program
[Link] Location Count
[Link] Symbol table,Literal Table,Pool Table
[Link] Intermediate code using MOT table,Symbol table
and Literal Table
Steps for Pass2:
[Link] generate Machine code from Intermediate code
Example 1 SPOS

Pass 1 Assembler Unit- I

Observe code

Apply LC
Pass 1 Assembler SPOS

Unit- I

Symbol Table
Construct
Pass 1 Assembler SPOS

Unit- I

Literal Table
Construct
Pass 1 Assembler SPOS

Unit- I

Pool Table

Pool table contains starting


literal(index ) of each pool.
SPOS

Intermediate code Unit- I


SPOS
Example 2 Unit- I

Assignment
Pass 2 Assembler SPOS

Unit- I

Pass 2 Assembler
❏ Processes the intermediate representation (IR) to
synthesize the target program.

Pass 2 Assembler

Intermediate code Machine Code


SPOS

Intermediate code Unit- I


SPOS
Example 2 Unit- I

Assignment
START 200
MOVER AREG, ‘=5’…………. 200
MOVEM AREG, X ………… 201
L1 MOVER BREG, ‘=2’………….202
ORIGIN L1+3 202+3=205
LTORG ………… 205,206 for literal
NEXT ADD AREG, ‘= 1’ ………… 207
SUB BREG,’=2’ ………… 208
BC LT, BACK …………. 209
LTORG 210, 211…. for literal
BACK EQU L1 ………… 202
ORIGIN NEXT+5 207+5=212
MULT AREG,’=4’ …………212
STOP……………………………213
X DS ‘5’………………………. 214
END ……….. 219 for literal (214+5=219)
SYMBOL TABLE

Index Symbol address


POOL TABLE
0 X 214 Index
0 0
1 L1 202
1 2
2 NEXT 207
3 BACK 202 2 4

LITERAL TABLE
Literal address
Index
0 5 205
1 2 206
2 1 210
3 2 211
4 4 219
Assembly Program LC Intermediate Code
START 200 ………..(AD,01) (C,200)
MOVER AREG, ‘=5’….. 200 ….(IS,04) (RG,01) (L,0)
MOVEM AREG, X…… 201….(IS,05) (RG,01) (S,0)
L1 MOVER BREG, ‘=2’….. 202 ….(IS,04) (RG,02) (L,1)
ORIGIN L1+3 (AD,03) (C,205)
LTORG 205……(DL,02) (C,5)
206 ……(DL,02) (C,2)
NEXT ADD AREG, ‘= 1’……. 207 ….(IS,01) (RG,01) (L,2)
SUB BREG,’=2’ ……… 208 ….(IS,02) (RG,02) (L,3)
BC LT, BACK…………. 209 ….(IS,07) (CC,02) (S,3)
LTORG ……….. 210, ……(DL,02) (C,1)
211 ……(DL,02) (C,2)
BACK EQU L1 ……….. 202 ………..(AD,01) (C,202)
ORIGIN NEXT+5 ………..(AD,01) (C,212)
MULT AREG,’=4’…….. 212 ….(IS,03) (RG,03) (L,4)
STOP…………………… 213 ….(IS,00)
X DS ‘5’……………. 214 ……(DL,01) (C,1)
END -------(AD,02)
219 ………(DL,02) (C,4)
Assembly Program LC Intermediate Code
START 200 machine code
MOVER AREG, ‘=5’….. 200 … 04 01 205
MOVEM AREG, X…… 201…. 05 01 214
L1 MOVER BREG, ‘=2’….. 202 ….04 02 206
ORIGIN L1+3
LTORG 205……00 00 05
206 ……00 00 02
NEXT ADD AREG, ‘= 1’……. 207 ….01 01 210
SUB BREG,’=2’ ……… 208 ….(IS,02) (RG,02) (L,3)
BC LT, BACK…………. 209 ….(IS,07) (CC,02) (S,3)
LTORG ……….. 210, ……(DL,02) (C,1)
211 ……(DL,02) (C,2)
BACK EQU L1 ……….. 202 ………..(AD,01) (C,202)
ORIGIN NEXT+5 ………..(AD,01) (C,212)
MULT AREG,’=4’…….. 212 ….(IS,03) (RG,03) (L,4)
STOP…………………… 213 ….(IS,00)
X DS ‘5’……………. 214 ……(DL,01) (C,1)
END -------(AD,02)
219………(DL,02) (C,4)
Flowchart of
Pass-1 of Two
pass assembler
Flowchart of
Pass-2 of
Two pass
assembler

You might also like