KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q51977: QuickAssembler Does Not Support 64K Data Segments

Article: Q51977
Product(s): See article
Version(s): 2.01
Operating System(s): MS-DOS
Keyword(s): ENDUSER | buglist2.01 | mspl13_masm
Last Modified: 17-JAN-1990

When attempting to create a data segment that is equal to 65536 bytes,
QuickAssembler (QA) will generate an object file that does not link.
After assembling a program with 65536 bytes of data, the error L1103
is generated at link time. This problem occurs with any of the linkers
provided with Microsoft QuickC with QuickAssembler. The Microsoft
Macro Assembler produces a valid object module under similar
conditions.

The following is sample code:

; DATA.ASM
; To see the problem, uncomment the second declaration and compile
; using the QCL DATA.ASM

       .model small
       .data
ok     db 65535 dup(?)
; bad  db ?
  end

The problem lies in the size of data segment the QuickAssembler
generates. Using the Microsoft Macro Assembler, the segment size
requested in the object module is 10000 for a 64K segment. This same
64K segment is given length 0 (zero) (rounded at 16-bits) by the
QuickAssembler.

Microsoft has confirmed this to be a problem in Version 2.01. We are
researching this problem and will post new information here as it
becomes available.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.