| ! .ALTERNATE |
| ! |
| |
| !foo MACRO string |
| ! LOCAL lab1, lab2 |
| !lab1: DATA.L lab2 |
| !lab2: SDATA string |
| ! ENDM |
| ! |
| |
| ! foo "An example" |
| ! |
| !LL0001: DATA.L LL0002 |
| LL0001: .long LL0002 |
| !LL0002: SDATA "An example" |
| LL0002: .byte 65,110,32,101,120,97,109,112,108,101 |
| ! foo "using LOCAL" |
| ! |
| !LL0003: DATA.L LL0004 |
| LL0003: .long LL0004 |
| !LL0004: SDATA "using LOCAL" |
| LL0004: .byte 117,115,105,110,103,32,76,79,67,65,76 |
| ! |
| |
| !! test of LOCAL directive |
| ! test of LOCAL directive |
| ! |
| |
| !chk_err MACRO limit |
| ! LOCAL skip !! frob |
| ! LOCAL zap,dog,barf |
| !barf: cmp ax,limit !! check value against |
| ! !! limit |
| ! jle skip !! skip call if OK |
| !skip: call error |
| ! foo dog |
| ! zap dog |
| ! nop |
| ! ENDM |
| ! |
| |
| ! chk_err 5 |
| ! |
| ! |
| !LL0008: cmp ax,5 |
| LL0008: cmp ax,5 |
| ! |
| ! jle LL0005 |
| jle LL0005 |
| !LL0005: call error |
| LL0005: call error |
| ! foo LL0007 |
| ! |
| !LL0009: DATA.L LL000a |
| LL0009: .long LL000a |
| !LL000a: SDATA LL0007 |
| LL000a: .byte 76,76,48,48,48,55 |
| ! LL0006 LL0007 |
| LL0006 LL0007 |
| ! nop |
| nop |
| ! chk_err 10 |
| ! |
| ! |
| !LL000e: cmp ax,10 |
| LL000e: cmp ax,10 |
| ! |
| ! jle LL000b |
| jle LL000b |
| !LL000b: call error |
| LL000b: call error |
| ! foo LL000d |
| ! |
| !LL000f: DATA.L LL0010 |
| LL000f: .long LL0010 |
| !LL0010: SDATA LL000d |
| LL0010: .byte 76,76,48,48,48,100 |
| ! LL000c LL000d |
| LL000c LL000d |
| ! nop |
| nop |
| ! |
| |
| ! |
| |
| ! END |