Option
/DO[[SSEG]]
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, /DOSSEG option defines the following two labels:
_edata = DGROUP : BSS
_end = DGROUP : STACK
The variables _edata and _end have special meanings for Microsoft compilers, so you should 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). 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 MASM directive .DOSSEG.