Presentation is loading. Please wait.

Presentation is loading. Please wait.

4. Macro Processors1 Chapter IV: Macro Processors Overview: r To study the design and implementation of macro processors. r A macro represents a commonly.

Similar presentations


Presentation on theme: "4. Macro Processors1 Chapter IV: Macro Processors Overview: r To study the design and implementation of macro processors. r A macro represents a commonly."— Presentation transcript:

1 4. Macro Processors1 Chapter IV: Macro Processors Overview: r To study the design and implementation of macro processors. r A macro represents a commonly used group of statements in the source programming language. r The macro processor replaces each macro instruction with the corresponding group of source language statements. (expanding)

2 4. Macro Processors2 r Macro definition r Invocation r Expansion (with substitution of parameters) Basic macro processor functions

3 4. Macro Processors3 r Macro definition r Invocation r Expansion (with substitution of parameters) Basic macro processor functions

4 4. Macro Processors4 r Macro definition r Invocation r Expansion (with substitution of parameters) Basic macro processor functions

5 4. Macro Processors5

6 6 Use of macros in a SIC/XE program

7 4. Macro Processors7 Use of macros in a SIC/XE program (cont.)

8 4. Macro Processors8 Program from above with macros expanded

9 4. Macro Processors9 Program from above with macros expanded (cont.)

10 4. Macro Processors10 Discussions… r Why does macro statement use JLT *-14? r Allow label?

11 4. Macro Processors11 Macro processor algorithm and data structures r For one-pass macro processor, the definition of a macro must appear in the source program before any statements that invoke that macro. r Three important tables are used for the macro processor: NAMTAB 、 DEFTAB 、 and ARGTAB.

12 4. Macro Processors12 Macro processor algorithm and data structures (cont.)

13 4. Macro Processors13 Macro processor algorithm and data structures

14 4. Macro Processors14 Macro processor algorithm and data structures (cont.)

15 4. Macro Processors15 Macro processor algorithm and data structures (cont.)

16 4. Macro Processors16 Machine-Independent Macro Processor Features ---- Concatenation of Macro Parameters r This feature enable a program to generate a series of variables named by XA1, XA2, XA3, …, etc. and XB1, XB2, XB3, …, etc. as well. r The body of the macro definition might contain a statement like LDAX&ID1 r It has some problems!! (solution: concatenation operator)

17 4. Macro Processors17 Machine-Independent Macro Processor Features ---- Concatenation of Macro Parameters (cont.)

18 4. Macro Processors18 Machine-Independent Macro Processor Features ---- Generation of unique labels r In general, the body of a macro instruction that contains labels is not possible. r It will cause duplicate definition. r Solution: use relative addressing (e.g., JEQ *03) r Drawback: For short jump, it is acceptable. For longer jump, it is not convenient, error- prone, and difficult to read.

19 4. Macro Processors19 Machine-Independent Macro Processor Features ---- Generation of unique labels (cont.)

20 4. Macro Processors20 Machine-Independent Macro Processor Features ---- Generation of unique labels (cont.)

21 4. Macro Processors21 Machine-Independent Macro Processor Features ---- Conditional Macro Expansion r 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. r Conditional macro expansion adds greatly to the power and flexibility of a macro language.

22 4. Macro Processors22 Machine-Independent Macro Processor Features ---- Conditional Macro Expansion (cont.)

23 4. Macro Processors23 Machine-Independent Macro Processor Features ---- Conditional Macro Expansion (cont.) Ps. &EORCK is a macro-time variable.

24 4. Macro Processors24 Machine-Independent Macro Processor Features ---- Conditional Macro Expansion (cont.)

25 4. Macro Processors25 Machine-Independent Macro Processor Features ---- Conditional Macro Expansion (cont.)

26 4. Macro Processors26 Machine-Independent Macro Processor Features ---- Macro-time looping statements

27 4. Macro Processors27 Machine-Independent Macro Processor Features ---- Macro-time looping statements (cont.)

28 4. Macro Processors28 Machine-Independent Macro Processor Features ---- Keyword Macro Parameters r Positional parameter vs. Keyword parameter GENER,, DIRECT,,,,,, 3. GENER TYPE=DIRECT, CHANNEL=3.

29 4. Macro Processors29 Machine-Independent Macro Processor Features ---- Keyword Macro Parameters (cont.)

30 4. Macro Processors30 Machine-Independent Macro Processor Features ---- Keyword Macro Parameters (cont.)

31 4. Macro Processors31 Machine-Independent Macro Processor Features ---- Keyword Macro Parameters (cont.)

32 4. Macro Processors32 Macro Processor Design Options ---- Recursive Macro Expansion r The invocation of one macro, which is defined by another macro instruction. r Using a programming language that allows recursive calls to write the macro processor.

33 4. Macro Processors33


Download ppt "4. Macro Processors1 Chapter IV: Macro Processors Overview: r To study the design and implementation of macro processors. r A macro represents a commonly."

Similar presentations


Ads by Google