FIX: Parentheses Necessary for Operator PrecedenceLast reviewed: September 11, 1997Article ID: Q39443 |
5.10 | 5.10
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSUsing Microsoft Macro Assembler (MASM) version 5.1, You may be able to correct "Illegal size for operand" errors by careful use of parentheses.
STATUSMicrosoft has confirmed this to be a problem in MASM version 5.1. This problem was corrected in MASM version 5.1a.
MORE INFORMATIONThe following code demonstrates warnings, errors, and their solution: dosseg .model small,c .data .code myproc PROC buffer:FAR PTR BYTE
mov bx, WORD PTR buffer[0] mov ds, WORD PTR buffer[2]; MASM gives an operand-size error. This is a precedence problem that ; you can correct with parentheses:
mov bx, WORD PTR (buffer[0]) mov ds, WORD PTR (buffer[2])myproc ENDP end ...................................................................... masm test,,,; Microsoft (R) Macro Assembler Version 5.10 Copyright (C) Microsoft Corp 1981, 1988. All rights reserved. test.ASM(9): warning A4057: Illegal size for operand test.ASM(10): error A2057: Illegal size for operand
23666 Bytes symbol space free 1 Warning Errors 1 Severe Errors.......................................................................
|
Additional reference words: 5.10 buglist5.10 fixlist5.10a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |