Microsoft KB Archive/35803

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 16:55, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 "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: KB35803