Download Assemblers and Loaders

Transcript
152 Macros
Ch. 4
5
Dlevel
>0
=0
D,
DE
=0
Elevel
Copy into current
definition in MDT
>0
E
N
Error!
illegal
character
read while
in normal
mode
Pop current
levelof args
from stack A
Dlevel:=Dlevel-1
>1
Dlevel
1
Pop top of MES
=1
1
Elevel:=Elevel-1
mode
D
Elevel
mode:=N
DE
mode:=E
=0
>0
1
Figure 4–7d. Revesz’s method for nested macro definitions (part IV).
The following example illustrates a macro L1 whose definition is nested by L2
which, in turn, is nested by a level 3 macro, L3.
1
2
3
4
5
6
7
8
9
10
L1 MACRO
MOV
CMP
L2 MACRO
MOV
CMP
L3 MACRO
MOV
CMP
MEND
A,B,C,D
A,B
C,D
E,F,D,C
E,C
A,X
A,E,C,G
C,E
A,G
L3
L1
MOV
CMP
L2
MOV
CMP
L3
MOV
CMP
MEND
#1#2#3#4
#1#2
#3#4
MACRO E,F,D,C
E,C
#1,X
MACRO A,E,C,G
C,E
A,G
L3
L2
MOV
CMP
L3
MOV
CMP
MEND
#1#2#3#4
#1,#4
M,X
MACRO A,E,C,G
C,#1
A,G
L3
L3 MACRO #1#2#3#4
MOV #3,W
CMP #1,#4
(end of macro)