FIX: Error A2057 With DOS.INC, .386, and MASM 5.1 or 5.1aLast reviewed: September 11, 1997Article ID: Q60267 |
5.10 5.10a | 5.10 5.10a
MS-DOS | OS/2kbtool kbfixlist kbbuglist The information in this article applies to:
SYMPTOMSThe 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 RESOLUTIONNo 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.
STATUSMicrosoft 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 INFORMATIONThe 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
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |