構文 DOSSEG
DOSSEG 文が実行されると、各セグメントはリンク時に「MS-DOS セグメント順序規約」に従って並べられます。DOSSEG 文はリンクオプションの/DOSSEG と同じ効果を持ちます。
「MS-DOS セグメント順序規約」とは、セグメントの順序を決定する方法に関する規約です。この規約では、次の各条件が当てはまるセグメントから先に配置します。先に挙げている条件ほど優先されます。
1. セグメントクラス'CODE'を持つセグメントを配置します。
2. グループ DGROUP に所属しないセグメントを配置します。
3. セグメントクラス'BEGDATA'を持つセグメントを配置します。
4. セグメントクラスが'BSS'、'STACK'でないセグメントを配置します。
5. セグメントクラス'BSS'を持つセグメントを配置します。
6. セグメントクラス'STACK'を持つセグメントを配置します。
簡略化セグメントディレクティブを使用している場合(または SEGMENT 文によって同等のセグメントを定義している場合)は、この DOSSEG 文を使用すると効率のよいセグメント配置ができます。たとえばセグメントクラス'BSS'や'STACK'のセグメントはデータを持っていませんが、このようなセグメントは最後に配置すると、作成される実行ファイルが小さくなるという MS-DOS の特徴があります。DOSSEG 文によるセグメント順序はこのようなことにも注意して決められています。
このディレクテイブは、簡略化セグメントディレクティブで行われるセグメント定義形式を前提にしているので、そのようなセグメント構成をとっていないプログラムには無意味です。