| .MACRO SUM FROM=0, TO=9 |
| ; \FROM \TO |
| MOV R\FROM,R10 |
| COUNT .ASSIGNA \FROM+1 |
| .AWHILE \&COUNT LE \TO |
| MOV R\&COUNT,R10 |
| COUNT .ASSIGNA \&COUNT+1 |
| .AENDW |
| .ENDM |
| |
| SUM 0,5 |
| SUM TO=5 |
| SUM FROM=2, TO=5 |
| |
| |
| ; hi this is a comment |
| .MACRO BACK_SLASH_SET |
| \(MOV #"\",R0) |
| .ENDM |
| BACK_SLASH_SET |
| .MACRO COMM |
| bar ; this comment will get copied out |
| foo \; this one will get dropped |
| .ENDM |
| COMM |
| BACK_SLASH_SET |
| .MACRO PLUS2 |
| ADD #1,R\&V1 |
| .SDATA "\&V'1" |
| .ENDM |
| V .ASSIGNC "R" |
| V1 .ASSIGNA 1 |
| PLUS2 |
| .MACRO PLUS1 P,P1 |
| ADD #1,\P1 |
| .SDATA "\P'1" |
| .ENDM |
| PLUS1 R,R1 |
| |
| .MACRO SUM P1 |
| MOV R0,R10 |
| ADD R1,R10 |
| ADD R2,R10 |
| \P1 |
| ADD R3,R10 |
| .ENDM |
| |
| SUM .EXITM |
| |
| .MACRO foo bar=a default=b |
| \bar |
| \default |
| bar |
| default |
| .ENDM |
| foo default=dog bar=cat |
| foo X Y |
| foo |
| foo bar=cat default=dog |
| |
| |
| .MACRO foo bar |
| HI |
| HI \bar |
| HI |
| .ENDM |
| |
| foo 1 |
| foo 123 |
| foo 1 2 3 4 |
| foo |
| |
| |
| .MACRO PUSH Rn |
| MOV.L \Rn,@-r15 |
| .ENDM |
| PUSH R0 |
| PUSH R1 |
| |
| |
| .MACRO RES_STR STR, Rn |
| MOV.L #str\@,\Rn |
| BRA end_str\@ |
| NOP |
| str\@ .SDATA "\STR" |
| .ALIGN 2 |
| end_str\@ |
| .ENDM |
| |
| RES_STR "ONE",R0 |
| RES_STR "TWO",R1 |
| RES_STR "THREE",R2 |
| |
| |
| |
| RES_STR STR=donkey Rn=R1 |
| RES_STR donkey,R1 |
| RES_STR donkey Rn=R1 |
| .END |
| |
| |
| |