EQU / TEXTEQU / RDEQU

1 行の置換文字列を定義します。

構文    name    EQU    text...
    name    TEXTEQU    text...
    name    RDEQU    text...
例    X    EQU    12
    X2    EQU    <12>
    CTYP    EQU    NEAR
    OPRD    EQU    [BP+6]
    STR    EQU    'ERROR'
    ALIAS    EQU    STR
    NEMO    EQU    MOV
    LEN    EQU    $ - MSG

EQU 文は nametext に定義します。ソースコード中の識別子 name がすべて文字列 text に置換されます。text は山型括弧 < > で囲むこともできます。この場合、< > は定義内容には入りません。

原則として text がそのまま定義内容になりますが、text に MACRO パラメータまたはロケーションカウンタ記号「$」が含まれている場合は、その部分を展開した結果が定義内容として保存されます。

EQU 文で定義した名前は、= 定義名とは異なり、前方参照できます。EQU 文で定義した名前は、再定義できません。

X    EQU    12
X    EQU    13    ; 再定義エラー

TEXTEQU は、EQU と同じです。

RDEQU〔LASM〕で定義した名前は、再定義できます。これ以外の点について、RDEQU は EQU と同じです。RDEQU 名への前方参照はエラーになりませんが、ソースファイル末尾での値が使用されるので注意してください。RDEQU 文は = 文とほとんど同じですが、オペランドとして評価できない値も定義できる点が異なります。

    dw    X    ; =13 (ソース末尾での値)
X    RDEQU    12
    dw    X    ; =12
X    RDEQU    13    ; 正当
    dw    X    ; =13

メモ LASM の EQU 文は、単純なテキスト置換を定義します。これは Microsoft MASM の EQU 文と完全に同じ動作ではありません。詳細については、「MS-MASM との互換性」を参照してください。

[目次]