Microsoft KB Archive/11204

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.