forked from netwide-assembler/nasm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathemptyarg.asm
147 lines (128 loc) · 2.09 KB
/
emptyarg.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
%define EMPTY
%macro bar 1
db "bar", __LINE__, %0, %1
%endmacro
%macro baz 2
db "baz", __LINE__, %0, %1, %2
%endmacro
%macro nothing 0
db "nothing", __LINE__, %0
%endmacro
%macro xyzzy 1-2
db "xyzzy", __LINE__, %0, %1, %2, %3
%endmacro
%macro vararg 0-*
db "vararg", __LINE__, %0
%assign %%i 1
%rep %0
db "vararg arg ", %%i, %1
%rotate 1
%assign %%i %%i + 1
%endrep
%endmacro
%macro defargs 1-5 def2, def3, def4, def5
db "defargs", __LINE__, %0, %1, %2, %3, %4, %5
%endmacro
%macro ivar 1
vararg %1
%endmacro
%macro foo 1-2
db "foo", __LINE__, %0, %1, %2
bar %2
bar {%2}
bar %2,
bar {%2},
baz %1,%2
baz {%1},{%2}
nothing %1
nothing %2
xyzzy "meep",%1,%2,
xyzzy "meep","meep",%1,%2
xyzzy "alpha","bravo",
xyzzy "with","empty",EMPTY
%endmacro
%macro orange 1
db %{1:1}
%endmacro
%macro prange1 2-3
db %{1:2}, 0%3
%endmacro
%macro prange2 1-3 'two', 'three'
db %{1:3}
%endmacro
db 4,
nothing
nothing 1
nothing ; foo
nothing EMPTY
flup: foo 1,2
foo 3
bar
bar EMPTY
foo 6,
foo 6, ; With space/comment
foo 6,EMPTY
baz 8,EMPTY
foo 6,{}
foo ,5
xyzzy 13,14,15,
xyzzy 13,14,15,EMPTY
xyzzy 20,21
xyzzy 22,23,
xyzzy 24,25,EMPTY
xyzzy 26,27,,
xyzzy 28,29,EMPTY,EMPTY
vararg
vararg EMPTY
vararg ,
vararg 10
vararg 11,
vararg 12,EMPTY
vararg 13,14,15,
vararg 13,14,15,EMPTY
vararg 20,21
vararg 22,23,
vararg 24,25,EMPTY
vararg 26,27,,
vararg 28,29,EMPTY,EMPTY
ivar {}
ivar {EMPTY}
ivar EMPTY
ivar ,
ivar {,}
ivar {60}
ivar {61,}
ivar {62,EMPTY}
ivar {63,64,65,}
ivar {63,64,65,EMPTY}
ivar {70,71}
ivar {72,73,}
ivar {74,75,EMPTY}
ivar {76,77,,}
ivar {78,79,EMPTY,EMPTY}
defargs EMPTY
defargs 91
defargs 91,92
defargs 91,92,93
defargs 91,92,93,94
defargs 91,92,93,94,95
defargs ,
defargs 91,
defargs 91,92,
defargs 91,92,93,
defargs 91,92,93,94,
defargs 91,92,93,94,95,
prange1 101
prange1 101, 102
prange1 101, 102, 103
prange2 121
prange2 121, 122
prange2 121, 122, 123
prange2 {121}
prange2 {121,121}
prange2 {121},{122}
prange2 {121},122,{123}
prange2 121,{122,122},123
orange 130
orange 130, 131
orange {130, 131}