SEGMENT
セグメント属性を持つ name というプログラム セグメントを定義します
構文
name SEGMENT ⟦READONLY⟧ ⟦align⟧ ⟦combine⟧ ⟦use⟧ ⟦characteristics⟧ ALIAS(string)) ⟦'class'⟧
statements
name ENDS
パラメーター
align
メモリ アドレスの範囲。ここからセグメントの開始アドレスを選択できます。 アラインメントの種類には、次のいずれかを指定できます。
配置の種類 | 開始アドレス |
---|---|
BYTE | 次に使用可能なバイト アドレス。 |
WORD | 次に使用可能なワード アドレス (1 ワードあたり 2 バイト)。 |
DWORD | 次に使用可能なダブル ワード アドレス (1 ダブル ワードあたり 4 バイト)。 |
PARA | 次に使用可能なパラグラフ アドレス (1 パラグラフあたり 16 バイト)。 |
PAGE | 次に使用可能なページ アドレス (1 ページあたり 256 バイト)。 |
ALIGN(n) | 次に使用可能な n 番目のバイト アドレス。 詳細については、「解説」セクションを参照してください。 |
このパラメーターが指定されていない場合は、既定の PARA が使用されます。
combine (32 ビット MASM のみ)
PUBLIC、STACK、COMMON、MEMORY、ATaddress、PRIVATE
use (32 ビット MASM のみ)
USE16、USE32、FLAT
characteristics
INFO、READ、WRITE、EXECUTE、SHARED、NOPAGE、NOCACHE、DISCARD
これらは COFF に対してのみサポートされ、類似する名前の COFF セクションの特性に対応します (たとえば、SHARED は IMAGE_SCN_MEM_SHARED に対応します)。 READ によって、IMAGE_SCN_MEM_READ フラグが設定されます。 不使用の READONLY フラグが原因で、セクションの IMG_SCN_MEM_WRITE フラグがクリアされました。 いずれかの characteristics が設定されている場合、既定の特性は使用されず、プログラマが指定したフラグのみが有効になります。
string
この文字列は、出力された COFF オブジェクトのセクション名として使用されます。 同じ外部名を持つ複数のセクションを作成し、それぞれに異なる MASM セグメント名を付けます。
/omf ではサポートされません。
クラス
アセンブルされたファイル内でセグメントを結合して順序を付ける方法を指定します。 通常、この値は、'DATA'
、'CODE'
、'CONST'
、および 'STACK'
です
解説
ALIGN(n)
の場合、n は、1 から 8,192 の 2 の累乗となることがあります。/omf ではサポートされていません。