SEGMENT

セグメント属性を持つ name というプログラム セグメントを定義します。

name SEGMENT [[READONLY]] [[align]] [[combine]] [[use]] [[characteristics]] ALIAS(string) [['class']]
      statements
      name ENDS

パラメータ

  • align
    セグメントの開始アドレスを起点としてメモリ アドレスの範囲を選択できます。アライメントの種類としては、次のいずれかを使用できます。

    アラインメントの種類

    開始アドレス

    BYTE

    次に使用可能なバイト アドレス。

    WORD

    次に使用可能なワード アドレス (ワードあたり 2 バイト)。

    DWORD

    次に使用可能なダブル ワード アドレス (ダブル ワードあたり 4 バイト)。

    PARA

    次に使用可能な段落アドレス (段落あたり 16 バイト)。

    PAGE

    次に使用可能なページ アドレス (ページあたり 256 バイト)。

    ALIGN(n)

    次に使用可能な n 番目のバイト アドレス。詳細については、次の「解説」を参照してください。

    このパラメータが指定されていない場合は、既定で PARA が使用されます。

  • combine
    PUBLICSTACKCOMMONMEMORYATaddressPRIVATE

  • use
    USE16USE32FLAT

  • characteristics
    INFOREADWRITEEXECUTESHAREDNOPAGENOCACHE、および DISCARD

    これらは COFF でのみサポートされ、似た名前の COFF セクション特性に対応します (たとえば SHARED は IMAGE_SCN_MEM_SHARED に対応します)。READ は IMAGE_SCN_MEM_READ フラグを設定します。旧式の READONLY フラグでは、セクションにより、IMG_SCN_MEM_WRITE フラグがクリアされていました。何か characteristics が設定されている場合、既定の特性は使用されず、プログラマ定義のフラグのみが有効になります。

  • ALIAS(string)
    この文字列は、生成された COFF オブジェクト内のセクション名として使用されます。同じ外部名と異なる MASM セグメント名を持つ複数のセクションが作成されます。

    /omf ではサポートされていません。

解説

ALIGN(n) の n は 1 から 8192 までの 2 の累乗になります。/omf ではサポートされていません。

参照

概念

ディレクティブ リファレンス