/DOSS[[EG]]
The /DOSSEG option forces segments to be ordered as follows:
1.All segments with a class name ending in CODE
2.All other segments outside DGROUP
3.DGROUP segments in the following order:
A.Any segments of class BEGDATA. (This class name is reserved for Microsoft use.)
B.Any segments not of class BEGDATA, BSS, or STACK.
C.Segments of class BSS.
D.Segments of class STACK.
In addition, the /DOSSEG option defines the following two labels:
__edata = DGROUP : BSS
__end = DGROUP : STACK
The variables __edata and __end have special meanings for Microsoft compilers. It is recommended that you do not define program variables with these names. Assembly-language programs can reference these variables but should not change them.
The /DOSSEG option also inserts 16 null bytes at the beginning of the _TEXT segment (if this segment is defined); unassigned pointers point to this area. This behavior of the option is overridden by the /NONULLS option when both are used; use /NONULLS to override the DOSSEG comment record commonly found in standard Microsoft libraries.
This option is principally for use with assembly-language programs. When you link high-level-language programs, a special object-module record in the Microsoft language libraries automatically enables the /DOSSEG option. This option is also enabled by assembly modules that use Microsoft Macro Assembler (MASM) directive .DOSSEG.
Note:
The minimum abbreviation allowed for this option is /DOSS.