First pass of assembler

11,098 views 35 slides Jul 20, 2018
Slide 1
Slide 1 of 35
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35

About This Presentation

System Programming - Assembler's First Pass.


Slide Content

FIRST PASS OF ASSEMBLER ACTIVE LEARNING ASSIGNMENT FOR THE SUBJECT “SYSTEMS PROGRAMMING” PREPARED BY: HEMANT H. CHETWANI (130410107010 – TY CE-II)

What is Assembler ? An Assembler is a language processor that converts an assembly language program into a machine language program. To perform this conversion, it has to analyze the source program, determine which symbols used in the program correspond to which data or instruction, and use this information while synthesizing a target program. The organization of an assembler shows how it structures the various analysis and synthesis tasks.

Types of Assembler (According to it’s Pass structure)

1. Single Pass Assembler ALP is converted into a target program on a statement by statement basis. Analysis & synthesis both tasks are done within a single pass only…

Two pass assembler 1 st PASS Analysis Phase 2 nd PASS Synthesis Phase

Tasks of Analysis Phase 1. Separate label, opcode & operand 2. Build the symbol table 3. Perform LC processing 4. Construct IC Analysis

Tasks of Synthesis phase 1. Obtain the machine opcode corresponding to the mnemonic 2. Obtain the address of a memory operand from symbol table 3. Synthesize the machine instruction Synthesis

Design of a two pass assembler 1. Separate label, opcode & operand 2. Builds the symbol table 3. Perform LC processing 4. Construct Intermediate Code 1 st pass

Generates Target Program (Machine Code) 2 nd Pass

Pass 1 Pass 2 Source Program Target Program Data Structures Intermediate Code

1 st Pass Constructs Intermediate Code 1. Data structures (symbol table) 2. Intermediate form of source program

Data Structures

Opcode Table

Class IS DS AD Mnemonic info (Machine Opcode , Inst Length) Mnemonic info ID of a routine

Symbol Table

Literal Table

Pool Table

Intermediate Code Format

Example MOVER AREG , A Which information do we need to convert this instruction in to its equivalent intermediate code??? 1. CLASSES 2. CODES

(Statement Class, Opcode) Statement Class IS (Imperative stmt) DS (Declarative stmt) AD (Assembler Directives)

(Operand Class, Code) Operand Class C (Constant) L (Literal) S (Symbol )

Classes & Opcodes

MOVER AREG,A (IS, 04) (1)(S, 01)

Example Program

PASS-1 Algorithm

Example START 200 X DS 4 L1 MOVER AREG,Y SUB AREG,Z MOVEM AREG,W W EQU X+2 L2 PRINT W ORIGIN X-5 Z DC ‘9’ ORIGIN L2+1 STOP Y DC ‘7’ END LC 200 204 205 206 207 195 208 209

Example START 200 X DS 4 L1 MOVER AREG,Y SUB AREG,Z MOVEM AREG,W W EQU X+2 L2 PRINT W ORIGIN X-5 Z DC ‘9’ ORIGIN L2+1 STOP Y DC ‘7’ END (AD,01)(C,200) (DL,02)(C,04) (IS,04)(1)(S,01) (IS,02)(1)(S,02) (IS,05)(1)(S,03) (AD,04) (IS,10)(S,03) (AD,03) (DL,01)(L,01) (AD,03) (AD,00) (DL,01)(L,02) (AD,02)

SYMTAB SYMBOL ADDRESS LENGTH X 200 4 L1 204 1 W 202 1 L2 207 1 Z 195 1 Y 209 1

LIKEWISE... WE CAN GENERATE ALL THE TABLES THAT WE NEED USING FIRST PASS OF ASSEMBLER