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.