12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- .macro m param
- .if \param
- .macro inner
- mov r0, #1
- .endm
- .else
- .macro inner
- mov r0, #0
- .endm
- .endif
- inner
- mov r1, #\param
- .purgem inner
- .endm
- m 1
- m 0
- .irpc i, 0123
- mov r1, #\i
- .iflt \i-2
- mov r2, #42
- .else
- mov r3, #42
- .endif
- .endr
- .irpc i, 01
- m \i
- .endr
- .macro outer
- .macro inner
- .if VAR1 > 10
- mov r4, #42
- .endif
- .endm
- .set VAR1, 5
- inner
- .set VAR1, 15
- inner
- .purgem inner
- .endm
- .if 2 > 1
- outer
- .endif
- .macro argtest1 first, second, third
- mov r0, #\first
- mov r0, #\second
- mov r0, #\third
- .endm
- .macro argtest2 first second third
- mov r1, #\first
- mov r1, #\second
- mov r1, #\third
- .endm
- # test for comma between macro name and first parameter
- .macro argtest3, first, second, third
- mov r0, #\first
- mov r0, #\second
- mov r0, #\third
- .endm
- argtest1 1, 2, 3
- argtest1 1 2 3
- argtest2 1, 2, 3
- argtest2 1 2 3
- argtest1 1 2 3 + 1
- argtest2 1 2 < 1 3
- argtest3 1, 2, 3
- argtest3 1 2 3
- argtest3 1 2 6 / 2
- .irpc i, 0123
- .irpc j, 0123
- mov r\i, #\j
- .endr
- .endr
- .macro alttest param
- .if param < 10
- mov r0, #param
- .endif
- .endm
- .altmacro
- alttest 5
- alttest 15
- .noaltmacro
|