.MACRO疑似命令と.ENDM疑似命令の間に記述された一連の文に対し,シンボル欄で指定したネームをマクロ名とした,マクロを定義します。
[指定形式]
シンボル欄
|
ニモニック欄
|
オペランド欄
|
コメント欄
|
ネーム
|
.MACRO
:
マクロ・ボディ
:
.ENDM
|
[仮パラメータ[, ... ]]
|
[; コメント]
[; コメント]
|
[機能]
- | .MACRO疑似命令と.ENDM疑似命令の間に記述された一連の文(マクロ・ボディと呼びます)に対し,シンボル欄で指定したネームをマクロ名とした,マクロの定義を行います。
このマクロ名を参照した場合(以下,「マクロ呼び出し」と呼ぶ),その位置にこのマクロ名に対応するマクロ本体が記述されたものとして扱います(以下,「マクロ展開」と呼ぶ)。 |
[詳細説明]
- | .MACRO疑似命令に対応する.ENDM疑似命令が,同一ファイル内に存在しない場合はエラーが出力されます。
例えば,.MACRO,または.ENDMのどちらか一方がインクルード・ファイル中に存在する場合はエラーとなります。 |
- | 仮パラメータの最大数は利用可能なメモリ量に依存します。 |
- | マクロ呼び出しにおいて,余分な実パラメータがある場合は警告が出力されます。 |
- | マクロ定義より先にマクロ呼び出しを行った場合,エラーが出力されます。 |
- | マクロ・ボディ内で,現在定義中のマクロの呼び出しが行われた場合,エラーが出力されます。 |
- | 同名の仮パラメータが複数ある場合はエラーが出力されます。 |
- | マクロ呼び出しにおいて,実パラメータとしては数値定数,またはシンボルのいずれかが記述可能であり,そうでない場合はエラーが出力されます。 |
- | マクロ・ボディ内には,文の並びが指定可能です。オペランドなど,文の一部を指定することはできません。 |
[使用例]
ADMAC .MACRO PARA1, PARA2 ; マクロ定義
MOV A, #PARA1
ADD A, #PARA2
.ENDM
ADMAC 0x10, 0x20 ; マクロ呼び出し
|