DOCERR: External Addresses in "=" Directive

ID: Q35803


The information in this article applies to:
  • Microsoft Macro Assembler for MS-DOS, versions 5.0, 5.1, 5.1a
  • Microsoft Macro Assembler for OS/2, versions 5.1, 5.1a, 6.0, 6.0a, 6.0b


SYMPTOMS

On page 214, section 11.1.1, of the "Microsoft Macro Assembler 5.1 Programmer's Guide", 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.


MORE INFORMATION

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 :
Version : :5.0,5.1,5.1a,6.0,6.0a,6.0b
Platform :
Issue type :


Last Reviewed: January 5, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.