KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q47031: .Startup Not Interchangeable with ORG Instruction, Tiny Model

Article: Q47031
Product(s): See article
Version(s): 2.01
Operating System(s): MS-DOS
Keyword(s): ENDUSER | docerr | mspl13_masm
Last Modified: 26-JUL-1989

Page 80 of the "QuickAssembler Programmer's Guide" implies that the
.Startup directive in a tiny model program can be readily replaced
with an ORG 100h instruction. This is not true. The .Startup directive
does more than just generate an ORG 100h in the tiny memory model. If
you try to replace .Startup with ORG 100h, you get the following error
during the link phase:

   LINK : fatal error L2051: start address not equal to 0x100 for /TINY

In all memory models, the .Startup directive generates necessary
start-up code for the given memory model and stack type. It also
initializes DS, SS, and SP, as necessary.

Be sure to use .Exit as well as .Startup to avoid other errors.

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.