87 lines
1.3 KiB
Plaintext
87 lines
1.3 KiB
Plaintext
! .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
|