Macro Assignment
Macro Assignment
Problem Statement:
Study assignment for macro processor. (consider all aspects of macro processor)
Objective:
To study basic functioning of Macro Processor.
To study working of nested macro.
Theory:
What is Macro Processor :
Minimum 5 Lines. (structure of macro definition , call with example)
Show the contents of various MACRO definition table and Macro Name table
and Argument list array , stack frame wherever needed, Expanded Source file.
Example 1
1. READ A
2. READ B
3. MACRO
4. ADD2 X,Y,Z
5. LOAD X
6. ADD Y
7. STORE Z
8. MEND
9. MACRO
10. MULT L,X,Y,Z
11. LOAD @0
12. STORE Z
13. L ADD2 X,Z,Z
14. LOAD Y
15. SUB @1
16. STORE Y
17. JPOSE L
18. MEND
19. MULT L1,A,B,C
20. ENDP
21. A DEFW
22. B DEFW
23. C DEFW
24. END
Example 2
START
SR 2,2
L 1,DATA1
MACRO
ADD_M &ARG1
L 1, &ARG1
A 1, =F’10’
SR 3,3
ST 1, &ARG1
MEND
AR 2,2
MACRO
ADD_S &A1, &A2,&A3
ADD_M &A1
ADD_M &A2
ADD_M &A3
MEND
ADD_M DATA1
ADD_S X1, X2, X3
ADD_S X2, X1, X3
DATA1 DC F’20’
X1 DC F’25’
X2 DC F’30’
X3 DC F’35’
END
Example 3
MACRO
MAC1
MOVER AREG, M
ADD BREG, M
MOVEM CREG, M
MEND
MACRO
EVAL &X,&Y,&Z
MOVER AREG, &X
SUB AREG, &Y
ADD AREG, &Z
MOVER AREG, &Z
MEND
MACRO
CALC &X,&Y,&OP=MULT,&LAB=
&LAB MOVER AREG, &X
&OP AREG, &Y
MOVEM AREG, &X
MEND
START
MOVEM AREG, B
EVAL A, B, C
ADD AREG, N
MOVEM AREG, N
CALC P, Q, LAB=LOOP:
MOVEM AREG, N
MAC1
CALC P,Q,OP=DIV, LAB=NEXT
M DS 1
A DS 5
B DS 1 C DS 1 N DS 1
P DS 1 Q DS 1
END