4. Macro Processors 1 Chapter IV: Macro Processors Overview: To study the design and implementation of macro processors. A macro represents a commonly used group of statements in the source programming language. The macro processor replaces each macro instruction with the corresponding group of source language statements. (expanding)
33
Embed
4. Macro Processors1 Chapter IV: Macro Processors Overview: r To study the design and implementation of macro processors. r A macro represents a commonly.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
4. Macro Processors1
Chapter IV: Macro Processors
Overview: To study the design and implementation of macro
processors. A macro represents a commonly used group of
statements in the source programming language. The macro processor replaces each macro instruction
with the corresponding group of source language statements. (expanding)
4. Macro Processors2
Macro definition Invocation Expansion (with substitution of parameters)
Basic macro processor functions
4. Macro Processors3
Macro definition
Invocation Expansion (with substitution of parameters)
Basic macro processor functions
4. Macro Processors4
Macro definition Invocation
Expansion (with substitution of parameters)
Basic macro processor functions
4. Macro Processors5
4. Macro Processors6
Use of macros in a SIC/XE program
4. Macro Processors7
Use of macros in a SIC/XE program (cont.)
4. Macro Processors8
Program from above with macros expanded
4. Macro Processors9
Program from above with macros expanded (cont.)
4. Macro Processors10
Discussions…
Why does macro statement use JLT *-14? Allow label?
4. Macro Processors11
Macro processor algorithm and data structures
For one-pass macro processor, the definition of a macro must appear in the source program before any statements that invoke that macro.
Three important tables are used for the macro processor: NAMTAB 、 DEFTAB 、 and ARGTAB.
4. Macro Processors12
Macro processor algorithm and data structures (cont.)
4. Macro Processors13
Macro processor algorithm and data structures
4. Macro Processors14
Macro processor algorithm and data structures (cont.)
4. Macro Processors15
Macro processor algorithm and data structures (cont.)
4. Macro Processors16
Machine-Independent Macro Processor Features---- Concatenation of Macro Parameters
This feature enable a program to generate a series of variables named by XA1, XA2, XA3, …, etc. and XB1, XB2, XB3, …, etc. as well.
The body of the macro definition might contain a statement like
LDA X&ID1
It has some problems!! (solution: concatenation operator)
4. Macro Processors17
Machine-Independent Macro Processor Features---- Concatenation of Macro Parameters (cont.)
4. Macro Processors18
Machine-Independent Macro Processor Features---- Generation of unique labels
In general, the body of a macro instruction that contains labels is not possible.
It will cause duplicate definition.
Solution: use relative addressing (e.g., JEQ *03)
Drawback: For short jump, it is acceptable. For longer jump, it is not convenient, error- prone, and difficult to read .
4. Macro Processors19
Machine-Independent Macro Processor Features---- Generation of unique labels (cont.)
4. Macro Processors20
Machine-Independent Macro Processor Features---- Generation of unique labels (cont.)
For previous examples of macro instructions, these statements could be varied by the substitution of parameters, but the form of the statement, and the order in which they appeared, were unchanged.
Conditional macro expansion adds greatly to the power and flexibility of a macro language.