SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
QUESTION BANK
UNIT IV

CS 1203 SYSTEM SOFTWARE
UNIT-III MACRO PROCESSORS

MACRO PROCESSORS

9

Basic macro processor functions - Macro Definition and Expansion – Macro Processor Algorithm
and data structures - Machine-independent macro processor features - Concatenation of Macro
Parameters – Generation of Unique Labels – Conditional Macro Expansion – Keyword Macro
Parameters-Macro within Macro-Implementation example - MASM Macro Processor – ANSI C
Macro language.

1) Define Macro.
A macro instruction (macro) is a notational convenience for the programmer.
It allows the programmer to write a shorthand version of a program
o A macro represents a commonly used group of statements in the
source programming language.
o Expanding the macros - the macro processor replaces each macro
instruction with the corresponding group of source language
statements.
2) What is a macro processor?
A macro processor - Essentially involve the substitution of one group
of characters or lines for another. Normally, it performs no analysis of the text it
handles. It doesn’t concern the meaning of the involved statements during macro
expansion
o The design of a macro processor generally is machine independent.
Three examples of actual macro processors:
o A macro processor designed for use by assembler language programmers
o Used with a high-level programming language
o General-purpose macro processor, which is not tied to any particular
language

3) What are the basic macro processor functions?
Basic Macro Processors Functions
Macro processor should processes the
Macro definitions
o Define macro name, group of instructions
Macro invocation (macro calls)
o A body is simply copied or substituted at the point of call Expansion with
substitution of parameters
o Arguments are textually substituted for the parameters
o The resulting procedure body is textually substituted for the call
4) What are the Assembler directives used for Macro Definition?
Macro Definition
Two new assembler directives are used in macro definition:
MACRO: identify the beginning of a macro definition
MEND: identify the end of a macro definition
o label op operands
name MACRO parameters
:
body
:
MEND
o Parameters: the entries in the operand field identify the parameters of the macro
instruction
We require each parameter begins with ‘&’
o Body: the statements that will be generated as the expansion of the macro.
o Prototype for the macro:
The macro name and parameters define a pattern or prototype for the macro
instructions used by the programmer
5) Give an example program which uses Macro Definition.
Macro Definition
6) How Macro is invoked in a program? Give example.

Macro Invocation
7) What is Macro Expansion? Give an example.

Macro Expansion
Each macro invocation statement will be expanded into the statements that form
the body of the macro.
o Arguments from the macro invocation are substituted for the parameters in
the macro prototype.
The arguments and parameters are associated with one another according to
their positions.
o The first argument in the macro invocation corresponds to the first
parameter in the macro prototype, etc.

Macro Expansion Example

Program From Fig. 4.1 with Macros Expanded (fig. 4.2)(Cont.)

8)Explain the functions of two pass macro processor.
Two-pass macro processor
o Two-pass macro processor
o Pass1: process all macro definitions
o Pass2: expand all macro invocation statements
o Problem
Does not allow nested macro definitions
o Nested macro definitions
o The body of a macro contains definitions of other macros
Because all macros would have to be defined during the
first pass before any macro invocations were expanded
o Solution
• One-pass macro processor
9) What is the characteristic of one pass macro processor?
One-pass macro processor
Every macro must be defined before it is called
One-pass processor can alternate between macrodefinition and macro
expansion
Nested macro definitions are allowed
10) What are the data structures used by the macro processor?
Data Structures
o MACRO DEFINITION TABLE (DEFTAB)
Macro prototype
States that make up the macro body
Reference to parameters are converted to a positional notation.
o MACRO NAME TABLE (NAMTAB)
Role: an index to DEFTAB
Pointers to the beginning and end of the definition in DEFTAB
o MACRO ARGUMENT TABLE (ARGTAB)
Used during the expansion
Invocation  Arguments are stored in ARGTAB according to their
position
11) Write an algorithm for the Macro processor and explain.
Algorithm and Data Structure (4)
12) What is the difference between a Macro and a subroutine?
Differences between Macro and Subroutine
After macro processing, the expanded file can be used as input to the
assembler.
The statements generated from the macro expansions will be assembled
exactly as though they had been written directly by the programmer.
The differences between macro invocation and subroutine call
o The statements that form the body of the macro are generated each
time a macro is expanded.
o Statements in a subroutine appear only once, regardless of how many
times the subroutine is called.
13) What are the machine independent features of macro processors?
Other Macro Features
Concatenation of macro parameters
Generation of unique labels
Conditional macro expansion
Keyword Macro Parameters
Concatenation of Macro Parameters
Pre-concatenation
o LDA X&ID1
Post-concatenation
o LDA X&ID→1
Example: Figure 4.6
Concatenation Example

Generation of Unique Labels
Example
o JEQ *-3
o inconvenient, error-prone, difficult to read
Example Figure 4.7
$LOOP
TD
=X’&INDEV’
o 1st call:
$AALOOP TD
=X’F1’
o 2nd call:
$ABLOOP

RDBUFF

F1, BUFFER, LENGTH

TD

=X’F1’

Weitere ähnliche Inhalte

Was ist angesagt?

System software - macro expansion,nested macro calls
System software - macro expansion,nested macro callsSystem software - macro expansion,nested macro calls
System software - macro expansion,nested macro callsSARASWATHI S
 
Assemblers: Ch03
Assemblers: Ch03Assemblers: Ch03
Assemblers: Ch03desta_gebre
 
Ch 3 Assembler in System programming
Ch 3 Assembler in System programming Ch 3 Assembler in System programming
Ch 3 Assembler in System programming Bhatt Balkrishna
 
Assembler design options
Assembler design optionsAssembler design options
Assembler design optionsMohd Arif
 
Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compilerIffat Anjum
 
Loaders and Linkers
Loaders and LinkersLoaders and Linkers
Loaders and Linkerskunj desai
 
System Programing Unit 1
System Programing Unit 1System Programing Unit 1
System Programing Unit 1Manoj Patil
 
Introduction to loaders
Introduction to loadersIntroduction to loaders
Introduction to loadersTech_MX
 
System Programming Unit II
System Programming Unit IISystem Programming Unit II
System Programming Unit IIManoj Patil
 
Examinable Question and answer system programming
Examinable Question and answer system programmingExaminable Question and answer system programming
Examinable Question and answer system programmingMakerere university
 

Was ist angesagt? (20)

System software - macro expansion,nested macro calls
System software - macro expansion,nested macro callsSystem software - macro expansion,nested macro calls
System software - macro expansion,nested macro calls
 
Assemblers: Ch03
Assemblers: Ch03Assemblers: Ch03
Assemblers: Ch03
 
Ch 3 Assembler in System programming
Ch 3 Assembler in System programming Ch 3 Assembler in System programming
Ch 3 Assembler in System programming
 
Ss4
Ss4Ss4
Ss4
 
Assembler design options
Assembler design optionsAssembler design options
Assembler design options
 
Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compiler
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
 
Unit 4 sp macro
Unit 4 sp macroUnit 4 sp macro
Unit 4 sp macro
 
Loaders and Linkers
Loaders and LinkersLoaders and Linkers
Loaders and Linkers
 
System Programing Unit 1
System Programing Unit 1System Programing Unit 1
System Programing Unit 1
 
Introduction to loaders
Introduction to loadersIntroduction to loaders
Introduction to loaders
 
MACRO PROCESSOR
MACRO PROCESSORMACRO PROCESSOR
MACRO PROCESSOR
 
Single Pass Assembler
Single Pass AssemblerSingle Pass Assembler
Single Pass Assembler
 
System Programming Unit II
System Programming Unit IISystem Programming Unit II
System Programming Unit II
 
Unit 2
Unit 2Unit 2
Unit 2
 
Loaders
LoadersLoaders
Loaders
 
Ch 4 linker loader
Ch 4 linker loaderCh 4 linker loader
Ch 4 linker loader
 
Linkers
LinkersLinkers
Linkers
 
Examinable Question and answer system programming
Examinable Question and answer system programmingExaminable Question and answer system programming
Examinable Question and answer system programming
 
Unit 3 sp assembler
Unit 3 sp assemblerUnit 3 sp assembler
Unit 3 sp assembler
 

Ähnlich wie 33443223 system-software-unit-iv

Sas macros part 4.1
Sas macros part 4.1Sas macros part 4.1
Sas macros part 4.1venkatam
 
Task Perform addition subtraction division and multiplic.pdf
Task Perform addition subtraction division and multiplic.pdfTask Perform addition subtraction division and multiplic.pdf
Task Perform addition subtraction division and multiplic.pdfacsmadurai
 
Macros...presentation
Macros...presentationMacros...presentation
Macros...presentationfika sweety
 
Preprocessor directives in c language
Preprocessor directives in c languagePreprocessor directives in c language
Preprocessor directives in c languagetanmaymodi4
 
Preprocessor directives in c laguage
Preprocessor directives in c laguagePreprocessor directives in c laguage
Preprocessor directives in c laguageTanmay Modi
 
BAS 150 Lesson 8 Lecture
BAS 150 Lesson 8 LectureBAS 150 Lesson 8 Lecture
BAS 150 Lesson 8 LectureWake Tech BAS
 
Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01riddhi viradiya
 
N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)Selomon birhane
 
SP Solutions -Adi.pdf
SP Solutions -Adi.pdfSP Solutions -Adi.pdf
SP Solutions -Adi.pdfAdiseshaK
 
SP_Solutions_-Adi.pdf
SP_Solutions_-Adi.pdfSP_Solutions_-Adi.pdf
SP_Solutions_-Adi.pdfAdiseshaK
 
system prgramming - loaders-linkers.pdf
system prgramming - loaders-linkers.pdfsystem prgramming - loaders-linkers.pdf
system prgramming - loaders-linkers.pdfSATHYABAMAMADHANKUMA
 

Ähnlich wie 33443223 system-software-unit-iv (20)

Module 5.pdf
Module 5.pdfModule 5.pdf
Module 5.pdf
 
handout6.pdf
handout6.pdfhandout6.pdf
handout6.pdf
 
Sas macros part 4.1
Sas macros part 4.1Sas macros part 4.1
Sas macros part 4.1
 
Handout#04
Handout#04Handout#04
Handout#04
 
Task Perform addition subtraction division and multiplic.pdf
Task Perform addition subtraction division and multiplic.pdfTask Perform addition subtraction division and multiplic.pdf
Task Perform addition subtraction division and multiplic.pdf
 
Handout#05
Handout#05Handout#05
Handout#05
 
MACRO ASSEBLER
MACRO ASSEBLERMACRO ASSEBLER
MACRO ASSEBLER
 
Macro assembler
 Macro assembler Macro assembler
Macro assembler
 
Macros...presentation
Macros...presentationMacros...presentation
Macros...presentation
 
Preprocessor directives in c language
Preprocessor directives in c languagePreprocessor directives in c language
Preprocessor directives in c language
 
Preprocessor directives in c laguage
Preprocessor directives in c laguagePreprocessor directives in c laguage
Preprocessor directives in c laguage
 
BAS 150 Lesson 8 Lecture
BAS 150 Lesson 8 LectureBAS 150 Lesson 8 Lecture
BAS 150 Lesson 8 Lecture
 
Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01
 
N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)
 
SP Solutions -Adi.pdf
SP Solutions -Adi.pdfSP Solutions -Adi.pdf
SP Solutions -Adi.pdf
 
SP_Solutions_-Adi.pdf
SP_Solutions_-Adi.pdfSP_Solutions_-Adi.pdf
SP_Solutions_-Adi.pdf
 
SP_Solutions_-Adi.pdf
SP_Solutions_-Adi.pdfSP_Solutions_-Adi.pdf
SP_Solutions_-Adi.pdf
 
PreProcessorDirective.ppt
PreProcessorDirective.pptPreProcessorDirective.ppt
PreProcessorDirective.ppt
 
VBA
VBAVBA
VBA
 
system prgramming - loaders-linkers.pdf
system prgramming - loaders-linkers.pdfsystem prgramming - loaders-linkers.pdf
system prgramming - loaders-linkers.pdf
 

Kürzlich hochgeladen

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

33443223 system-software-unit-iv

  • 1. QUESTION BANK UNIT IV CS 1203 SYSTEM SOFTWARE UNIT-III MACRO PROCESSORS MACRO PROCESSORS 9 Basic macro processor functions - Macro Definition and Expansion – Macro Processor Algorithm and data structures - Machine-independent macro processor features - Concatenation of Macro Parameters – Generation of Unique Labels – Conditional Macro Expansion – Keyword Macro Parameters-Macro within Macro-Implementation example - MASM Macro Processor – ANSI C Macro language. 1) Define Macro. A macro instruction (macro) is a notational convenience for the programmer. It allows the programmer to write a shorthand version of a program o A macro represents a commonly used group of statements in the source programming language. o Expanding the macros - the macro processor replaces each macro instruction with the corresponding group of source language statements. 2) What is a macro processor? A macro processor - Essentially involve the substitution of one group of characters or lines for another. Normally, it performs no analysis of the text it handles. It doesn’t concern the meaning of the involved statements during macro expansion o The design of a macro processor generally is machine independent. Three examples of actual macro processors: o A macro processor designed for use by assembler language programmers o Used with a high-level programming language o General-purpose macro processor, which is not tied to any particular language 3) What are the basic macro processor functions? Basic Macro Processors Functions Macro processor should processes the Macro definitions o Define macro name, group of instructions Macro invocation (macro calls) o A body is simply copied or substituted at the point of call Expansion with substitution of parameters o Arguments are textually substituted for the parameters
  • 2. o The resulting procedure body is textually substituted for the call 4) What are the Assembler directives used for Macro Definition? Macro Definition Two new assembler directives are used in macro definition: MACRO: identify the beginning of a macro definition MEND: identify the end of a macro definition o label op operands name MACRO parameters : body : MEND o Parameters: the entries in the operand field identify the parameters of the macro instruction We require each parameter begins with ‘&’ o Body: the statements that will be generated as the expansion of the macro. o Prototype for the macro: The macro name and parameters define a pattern or prototype for the macro instructions used by the programmer 5) Give an example program which uses Macro Definition. Macro Definition
  • 3. 6) How Macro is invoked in a program? Give example. Macro Invocation
  • 4. 7) What is Macro Expansion? Give an example. Macro Expansion Each macro invocation statement will be expanded into the statements that form the body of the macro. o Arguments from the macro invocation are substituted for the parameters in the macro prototype. The arguments and parameters are associated with one another according to their positions. o The first argument in the macro invocation corresponds to the first parameter in the macro prototype, etc. Macro Expansion Example Program From Fig. 4.1 with Macros Expanded (fig. 4.2)(Cont.) 8)Explain the functions of two pass macro processor.
  • 5. Two-pass macro processor o Two-pass macro processor o Pass1: process all macro definitions o Pass2: expand all macro invocation statements o Problem Does not allow nested macro definitions o Nested macro definitions o The body of a macro contains definitions of other macros Because all macros would have to be defined during the first pass before any macro invocations were expanded o Solution • One-pass macro processor 9) What is the characteristic of one pass macro processor? One-pass macro processor Every macro must be defined before it is called One-pass processor can alternate between macrodefinition and macro expansion Nested macro definitions are allowed 10) What are the data structures used by the macro processor? Data Structures o MACRO DEFINITION TABLE (DEFTAB) Macro prototype States that make up the macro body Reference to parameters are converted to a positional notation. o MACRO NAME TABLE (NAMTAB) Role: an index to DEFTAB Pointers to the beginning and end of the definition in DEFTAB o MACRO ARGUMENT TABLE (ARGTAB) Used during the expansion Invocation  Arguments are stored in ARGTAB according to their position
  • 6. 11) Write an algorithm for the Macro processor and explain. Algorithm and Data Structure (4)
  • 7. 12) What is the difference between a Macro and a subroutine? Differences between Macro and Subroutine After macro processing, the expanded file can be used as input to the assembler. The statements generated from the macro expansions will be assembled exactly as though they had been written directly by the programmer. The differences between macro invocation and subroutine call o The statements that form the body of the macro are generated each time a macro is expanded. o Statements in a subroutine appear only once, regardless of how many times the subroutine is called.
  • 8. 13) What are the machine independent features of macro processors? Other Macro Features Concatenation of macro parameters Generation of unique labels Conditional macro expansion Keyword Macro Parameters Concatenation of Macro Parameters Pre-concatenation o LDA X&ID1 Post-concatenation o LDA X&ID→1 Example: Figure 4.6 Concatenation Example Generation of Unique Labels Example o JEQ *-3 o inconvenient, error-prone, difficult to read Example Figure 4.7 $LOOP TD =X’&INDEV’ o 1st call: $AALOOP TD =X’F1’
  • 9. o 2nd call: $ABLOOP RDBUFF F1, BUFFER, LENGTH TD =X’F1’