FIX: Error A2057 With DOS.INC, .386, and MASM 5.1 or 5.1a

Last reviewed: September 11, 1997
Article ID: Q60267
5.10 5.10a | 5.10 5.10a
MS-DOS     | OS/2
kbtool kbfixlist kbbuglist

The information in this article applies to:

  • Microsoft Macro Assembler for MS-DOS, versions 5.1 and 5.1a
  • Microsoft Macro Assembler for OS/2, versions 5.1 and 5.1a

SYMPTOMS

The Microsoft Macro Assembler (MASM) versions 5.1 and 5.1a generate the following error when the DOS.INC include file is used in conjunction with the .386 or .386P directive.

   error A2057: Illegal size of operand

RESOLUTION

No errors occur if the USE16 use type is used in the SEGMENT statement. This generates a 16-bit offset for the DOS.INC macros, whereas a 32-bit offset is generated without the USE16, and produces an error.

STATUS

Microsoft has confirmed this to be a problem in MASM versions 5.1 and 5.1a. This problem was corrected in MASM version 6.0.

MORE INFORMATION

The DOS.INC files are provided on disk 2 of the MASM version 5.1 disks, for simplified use of the DOS calls.

The following assembly listing produces the error mentioned above:

Sample Code

; Assemble options needed: none

.386 INCLUDE dos.inc

_datas  SEGMENT word 'data'     ; add USE16 for a work-around
msg     DB      'Hi,there'
msglen  EQU     $-msg
_datas ENDS

        ASSUME  cs:_codes
_codes SEGMENT word 'code'
start:  MOV     ax, _datas
        MOV     ds, ax          ; set ds to point to message

        @write  msg, msglen     ; error A2057 occurs here
        @exit

_codes ENDS

END start


Additional reference words: 5.10 5.10a buglist5.10 buglist5.10a fixlist6.00
KBCategory: kbtool kbfixlist kbbuglist
KBSubCategory: MLIss
Solution Type : kbfix


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.

Last reviewed: September 11, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.