DOCUMENT:Q60267 06-MAY-2001 [masm] TITLE :FIX: Error A2057 With DOS.INC, .386, and MASM 5.1 or 5.1a PRODUCT :Microsoft Macro Assembler PROD/VER::5.1,5.1a OPER/SYS: KEYWORDS: ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Macro Assembler (MASM), versions 5.1, 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 query words: 5.10 5.10a buglist5.10 buglist5.10a fixlist6.00 ====================================================================== Keywords : Technology : kbMASMsearch kbAudDeveloper kbMASM510 kbMASM510a Version : :5.1,5.1a 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. Copyright Microsoft Corporation 2001.