5.4.3 マクロ・オペレータ

この項では,マクロ本体内において文字列と文字列を連結するコンカティネート記号“~”,およびダラー記号“$”について説明します。

(1)

~(コンカティネート)

-

コンカティネート記号は,マクロ・ボディ内で「数字,英字相当文字からなる列」同士を連結します。
マクロ展開時には,コンカティネート記号の左右の「列」を連結し,コンカティネート自身は消滅します。

-

コンカティネート記号は,仮パラメータを実パラメータに置換してから連結します。

-

コンカティネート記号としての“~”は,マクロ定義時のみ有効です。

-

文字列中,およびコメント中の“~”は,単なるデータとして扱われます。

例 1.

abc     .macro  x
        abc~x:  mov     r10, r20
                sub     def~x, r20
.endm
abc STU

【展開結果】

abcSTU: mov     r10, r20
        sub     defSTU, r20

例 2.

abc     .macro  x, xy
        a_~xy:  mov     r10, r20
        a_~x~y: mov     r20, r10
.endm
abc stu, STU

【展開結果】

a_STU:  mov     r10, r20
a_stuy: mov     r20, r10

例 3.

abc     .macro  x, xy
        ~ab:    mov r10, r20
.endm
abc stu, STU

【展開結果】

ab:     mov     r10, r20