Sei sulla pagina 1di 24

Module 4 - Assemblers

Assembler – functions – Machine independent


assembler features - Machine dependent assembler
features machine dependent and independent features –
assembler design symbol table – Pass Structure of
Assemblers - Design of a Two Pass Assembler

Module 4
Role of Assembler
Source Object
Assembler Linker
Program Code

Executable
Code

Loader

Module 4
Assembler’s functions
1. Convert mnemonic operation codes to their
machine language equivalent
2. Convert symbolic operands to their equivalent
machine addresses
3. Build the machine instruction in the proper format
4. Convert data constants to internal machine
representation.
5. Write the object program and assembly listing

Module 4
Issue noticed

 Instructions with forward reference – line by line


translation is not possible

 Assemblers with two passes used to solve the issue


 Scan the source program for label definitions
 Actual translation

Module 4
Module 4
Example of Instruction Assemble
STCH BUFFER,X 549039
8 1 15
opcode x address
m
(54)16 1 (001)2 (039)16
 Forward reference

Module 4
Assembler directives –
 Not translated into machine instructions
 provide instructions to the assembler itself
(Eg. BYTE, RESB)

 Finally assembler must write object code on some


output device
 This object code is loaded into memory for execution
 Object code format contains 3 records: Header, Text
and End
Module 4
Object Program
 Header
Col. 1 H
Col. 2~7 Program name
Col. 8~13 Starting address (hex)
Col. 14-19 Length of object program in bytes (hex)
 Text
Col.1 T
Col.2~7 Starting address in this record (hex)
Col. 8~9 Length of object code in this record in bytes (hex)
Col. 10~69 Object code (69-10+1)/6=10 instructions
 End
Col.1 E
Col.2~7 Address of first executable instruction (hex)
(END program_name)
Module 4
Object code
H COPY 001000 00107A
T 001000 1E 141033 482039 001036 281030 301015 482061 ...
T 00101E 15 0C1036 482061 081044 4C0000 454F46 000003 000000
T 002039 1E 041030 001030 E0205D 30203F D8205D 281030 …
T 002057 1C 101036 4C0000 F1 001000 041030 E02079 302064 …
T 002073 07 382064 4C0000 05
E 001000

Module 4
Functions of Two Pass Assembler
 Pass 1
 Assign addresses to all statements in the program
 Save the values assigned to all labels for use in Pass 2
 Perform some processing of assembler directives
 Pass 2
 Assemble instructions
 Generate data values defined by BYTE, WORD
 Perform processing of assembler directives not done in Pass 1
 Write the object program and the assembly listing

Module 4
Two Pass Assembler
 Read from input line
 LABEL, OPCODE, OPERAND

Source
program

Intermediate Object
Pass 1 Pass 2
file codes

OPTAB SYMTAB SYMTAB

Module 4
Module 4
Module 4
Data Structures
 Operation Code Table (OPTAB)
 Symbol Table (SYMTAB)
 Literal table(LITTAB)

Module 4
OPTAB (operation code table)
 Content
 mnemonic, machine code (instruction format, length) etc.
 Characteristic
 static table
 Implementation
 array or hash table, easy for search

LOCCTR – Location counter is a variable used to help in the


assignment of addresses. The length of the assembled instruction
or data area to be generated is added to LOCCTR
Module 4
SYMTAB (symbol table)
 Content
 label name, value, flag, (type, length) etc.
 Characteristic
COPY 1000
 dynamic table (insert, delete, search) FIRST 1000
 Implementation CLOOP 1003
ENDFIL 1015
 hash table, non-random keys, EOF 1024
 hashing function THREE 102D
ZERO 1030
RETADR 1033
LENGTH 1036
BUFFER 1039
RDREC 2039
Module 4
Assembler
 Assembly level language Features:
1. Mnemonic Operation Code
2.Symbolic Operand specification
3.Declaration of data/storage areas

Module 4
Assembly program contains three kinds of statements:

1. Imperative statements
2. Declarative statements
3. Assembler directives

Module 4
 Imperative statements
Statements indicates actions to be performed
during execution of the assembled program
 Declarative statements
Statements declares constants or storage areas in a
program. Syntax: Label DS <constant>
Eg: A DS 1, B DC 1.
 Assembler directives
Instruct the assembler to perform certain actions
during the assembly of the program
Eg: START, END
START 100 // Program starts from location 100

Module 4
Module 4
Phases of Assembler
Mnemon
ic table

Analysis Synthesis
Source Object
Phase Phase
Program program

Symbol
Table

Module 4
Analysis Phase
 Isolate the lable, mnemonic operation code and
operand field of a statement
 Enters the symbol found in lable field & address of
available machine word into symbol table
 Validate the mnemonics operation code by looking in
the mnemonics table

Module 4
Mnemonics table

 Determine the memory requirement of the statement


by considering the mnemonic operation code &
operand fields.
 Calculate the address of the first machine word
following the object code generated for this statement.

Module 4
Synthesis Phase
 Obtain the machine operation code corresponding to
the mnemonic operation code by searching the
mnemonic table
 Obtain address of the operand from the symbol table
 Synthesis the machine instruction

Module 4

Potrebbero piacerti anche