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