as: M

1 
1 2.9 Assemble in MRI Compatibility Mode: '-M'
1 ============================================
1 
1 The '-M' or '--mri' option selects MRI compatibility mode.  This changes
1 the syntax and pseudo-op handling of 'as' to make it compatible with the
1 'ASM68K' or the 'ASM960' (depending upon the configured target)
1 assembler from Microtec Research.  The exact nature of the MRI syntax
1 will not be documented here; see the MRI manuals for more information.
1 Note in particular that the handling of macros and macro arguments is
1 somewhat different.  The purpose of this option is to permit assembling
1 existing MRI assembler code using 'as'.
1 
1    The MRI compatibility is not complete.  Certain operations of the MRI
1 assembler depend upon its object file format, and can not be supported
1 using other object file formats.  Supporting these would require
1 enhancing each object file format individually.  These are:
1 
1    * global symbols in common section
1 
1      The m68k MRI assembler supports common sections which are merged by
1      the linker.  Other object file formats do not support this.  'as'
1      handles common sections by treating them as a single common symbol.
1      It permits local symbols to be defined within a common section, but
1      it can not support global symbols, since it has no way to describe
1      them.
1 
1    * complex relocations
1 
1      The MRI assemblers support relocations against a negated section
1      address, and relocations which combine the start addresses of two
1      or more sections.  These are not support by other object file
1      formats.
1 
1    * 'END' pseudo-op specifying start address
1 
1      The MRI 'END' pseudo-op permits the specification of a start
1      address.  This is not supported by other object file formats.  The
1      start address may instead be specified using the '-e' option to the
1      linker, or in a linker script.
1 
1    * 'IDNT', '.ident' and 'NAME' pseudo-ops
1 
1      The MRI 'IDNT', '.ident' and 'NAME' pseudo-ops assign a module name
1      to the output file.  This is not supported by other object file
1      formats.
1 
1    * 'ORG' pseudo-op
1 
1      The m68k MRI 'ORG' pseudo-op begins an absolute section at a given
1      address.  This differs from the usual 'as' '.org' pseudo-op, which
1      changes the location within the current section.  Absolute sections
1      are not supported by other object file formats.  The address of a
1      section may be assigned within a linker script.
1 
1    There are some other features of the MRI assembler which are not
1 supported by 'as', typically either because they are difficult or
1 because they seem of little consequence.  Some of these may be supported
1 in future releases.
1 
1    * EBCDIC strings
1 
1      EBCDIC strings are not supported.
1 
1    * packed binary coded decimal
1 
1      Packed binary coded decimal is not supported.  This means that the
1      'DC.P' and 'DCB.P' pseudo-ops are not supported.
1 
1    * 'FEQU' pseudo-op
1 
1      The m68k 'FEQU' pseudo-op is not supported.
1 
1    * 'NOOBJ' pseudo-op
1 
1      The m68k 'NOOBJ' pseudo-op is not supported.
1 
1    * 'OPT' branch control options
1 
1      The m68k 'OPT' branch control options--'B', 'BRS', 'BRB', 'BRL',
1      and 'BRW'--are ignored.  'as' automatically relaxes all branches,
1      whether forward or backward, to an appropriate size, so these
1      options serve no purpose.
1 
1    * 'OPT' list control options
1 
1      The following m68k 'OPT' list control options are ignored: 'C',
1      'CEX', 'CL', 'CRE', 'E', 'G', 'I', 'M', 'MEX', 'MC', 'MD', 'X'.
1 
1    * other 'OPT' options
1 
1      The following m68k 'OPT' options are ignored: 'NEST', 'O', 'OLD',
1      'OP', 'P', 'PCO', 'PCR', 'PCS', 'R'.
1 
1    * 'OPT' 'D' option is default
1 
1      The m68k 'OPT' 'D' option is the default, unlike the MRI assembler.
1      'OPT NOD' may be used to turn it off.
1 
1    * 'XREF' pseudo-op.
1 
1      The m68k 'XREF' pseudo-op is ignored.
1 
1    * '.debug' pseudo-op
1 
1      The i960 '.debug' pseudo-op is not supported.
1 
1    * '.extended' pseudo-op
1 
1      The i960 '.extended' pseudo-op is not supported.
1 
1    * '.list' pseudo-op.
1 
1      The various options of the i960 '.list' pseudo-op are not
1      supported.
1 
1    * '.optimize' pseudo-op
1 
1      The i960 '.optimize' pseudo-op is not supported.
1 
1    * '.output' pseudo-op
1 
1      The i960 '.output' pseudo-op is not supported.
1 
1    * '.setreal' pseudo-op
1 
1      The i960 '.setreal' pseudo-op is not supported.
1