assemblygnu-assemblerintel-syntax

GNU as: Escape symbol names in intel_syntax


With GNU as .intel_syntax, some identifiers apparently become keywords, and writing e.g.

call and

to invoke a function called and results in

Error: invalid use of operator "and"

How do you circumvent this?


Solution

  • Alright, the answer seems to be:

    This is not possible. Use AT&T syntax.

    Looking at the GAS sources, config/tc-i386-intel.c lines 136ff are pretty clear about this.

    Some GNU developer considered completely disabling some symbol names to be a reasonable way of introducing named operators. Such a small bad design decision cost me and probably many other unfortunate users a whole afternoon. Don't be that guy.