Обычно компоновщик упорядочивает сегменты в последовательном порядке - в том порядке, в котором он их обрабатывает при генера- ции программы. Если вы включаете в любой модуль программу дирек- тиву DOSSEG, то это указывает компоновщику, что вместо этого упорядочивания нужно использовать порядок сегментов, принятый в DOS. Компоновщик при этом выполняет в получаемой программе следу- ющее упорядочивание:
- сначала идут сегменты с именем класса CODE (обычно сегмен- ты кода);
- затем следуют сегменты, не имеющие имени класса CODE и не являющиеся частью DGROUP;
- сегменты, являющиеся частью DGROUP в следующем порядке:
1. сегменты, не являющиеся классами BSS и STACK (обыч- но неинициализированные данные);
2. сегменты класса BSS (обычно инициализированные дан- ные);
3. сегменты класса STACK (область стека).
Примечание: Не используйте директиву DOSSEG, в прог- раммах, не являющихся автономными программами на Ассембле- ре.
Сегменты в группе DGROUP располагаются в том порядке, в ко- тором они определены в исходных модулях. Приведем синтаксис DOSSEG:
DOSSEG