.macro疑似命令と.endm疑似命令の間に記述された一連の文に対し,シンボル欄で指定したマクロ名を付け,マクロを定義します。
[指定形式]
シンボル欄 
 | 
ニモニック欄 
 | 
オペランド欄 
 | 
コメント欄 
 | 
マクロ名 
 | 
.macro 
   : 
マクロ・ボディ 
   : 
.endm  
 | 
[仮パラメータ[, ... ]] 
 | 
[; コメント] 
  
  
  
[; コメント] 
 | 
 
[機能]
-  | .macro疑似命令と.endm疑似命令の間に記述された一連の文(マクロ・ボディと呼びます)に対し,シンボル欄で指定したマクロ名を付け,マクロの定義を行います。  | 
 
[用途]
-  | ソース中で,使用頻度の高い一連の文をマクロ定義しておきます。その定義以降では,定義されたマクロ名を記述するだけで,そのマクロ名に対応するマクロ・ボディが展開されます。  | 
 
[詳細説明]
-  | .macro疑似命令には,対応する.endm疑似命令がなければ,エラーとなります。  | 
 
-  | シンボル欄に記述するマクロ名の規則については,「(2)  シンボル」を参照してください。  | 
 
-  | マクロを呼び出す場合は,ニモニック欄に定義済みのマクロ名を記述します。マクロ定義より先に参照を行った場合,エラーが出力されます。  | 
 
-  | オペランド欄に記述する仮パラメータの規則については,シンボル記述上の規則と同じです。  | 
 
-  | 仮パラメータは,マクロ・ボディ内でのみ有効です。  | 
 
-  | 仮パラメータと実パラメータの個数が一致しない場合はエラーが出力されます。  | 
 
-  | 仮パラメータの最大数は利用可能なメモリ量に依存します。  | 
 
-  | 1つのモジュール内でのマクロ定義の最大数には,特に制限はありません。メモリが使えるかぎり定義することができます。  | 
 
-  | マクロ定義内で現在定義中のマクロの呼び出しを行った場合,エラーが出力されます。  | 
 
-  | マクロ呼び出しにおいて実パラメータに指定可能なものは,ラベル名,シンボル名,数値,レジスタ,および命令ニモニックのみです。 
ラベル式(LABEL-1),参照方法指定ラベル(#LABEL),またはベース・レジスタ指定([gp])などを指定した場合,指定された実パラメータに依存したメッセージが出力され,アセンブルが中止されます。  | 
 
-  | マクロ・ボディ内には,文の並びが指定可能です。オペランドなど,文の一部を指定することはできません。  | 
 
-  | マクロ定義中のマクロ・ボディ内で,マクロ定義を記述した場合は,エラーを出力し,処理が継続されます(対応する.endm疑似命令までに記述された内容は無視されます)。そのマクロ名を参照した場合は定義エラーとなります。  | 
 
[使用例]
ADMAC   .macro  PARA1, PARA2    ; (1) 
        mov     PARA1, r12 
        add     PARA2, r12 
        .endm                   ; (2) 
  
        ADMAC   0x10, 0x20      ; (3) 
 | 
 
(1)  | マクロ名“ADMAC”,2つの仮引数“PARA1”,“PARA2”を指定したマクロ定義をしています。  |