Microsoft KB Archive/35803

= DOCERR: External Addresses in &quot;=&quot; Directive =

Article ID: 35803

Article Last Modified on 11/19/2003

-

APPLIES TO


 * Microsoft Macro Assembler 5.0
 * Microsoft Macro Assembler 5.1 Standard Edition
 * Microsoft Macro Assembler 5.1a
 * Microsoft Macro Assembler 6.0 Standard Edition
 * Microsoft Macro Assembler 6.0a
 * Microsoft Macro Assembler 6.0b

-



This article was previously published under Q35803



SYMPTOMS
On page 214, section 11.1.1, of the &quot;Microsoft Macro Assembler 5.1 Programmer's Guide&quot;, the documentation indicates that the equal sign (=) directive may be used with expressions that evaluate to an address. However, if the address refers to an external label, MASM 5.1 and 5.1a will generate the error:

error A2052: Improper operand type

MASM 6.0, 6.0a, and 6.0b will generate the error:

error A2026: constant expected



CAUSE
MASM has a restriction that the (=) directive can not be used on an external address.



RESOLUTION
You can use the EQU directive to create an alias for an external address.



Sample Code
; Assemble options needed: none

EXTRN buf1:BYTE buf2 = buf1

END

Additional query words: 5.10 5.10a 6.00 6.00a 6.00b

Keywords: KB35803

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.