MASM Cannot Create Single 64K Segment
ID Number:  Q11204

4.00
MS-DOS


Problem:

The MASM source code shown below produces a 0-length segment with no
warning to that effect: 

   DATA    SEGMENT
   FOO     dw      32768 dup (?)
   DATA    ENDS

Response:

MASM cannot create a single segment exactly 64K bytes in length.
However, it is a problem that no warning is issued. 

To obtain a 64K byte segment in the current version, define two parts
of the segment in two different modules as in the following example: 

   MODULE A:
       DATA    SEGMENT PUBLIC
               PUBLIC  FOO
       FOO     dw  16384 dup (?)
       DATA    ENDS
   --------------------
   MODULE B:
       DATA    SEGMENT PUBLIC
               dw  16384 dup (?)
       DATA    ENDS
   --------------------

Assembling these two modules separately and linking them will produce
a 64K byte segment in the final program. Be sure to link A before B in
this case to ensure that the symbol FOO addresses the base of the
segment. 
