mostly copied from the yasm manual.
svn path=/trunk/yasm/; revision=1662
<replaceable>format</replaceable>. See
<citerefentry>
- <refentrytitle>yasm_objfmt</refentrytitle>
+ <refentrytitle>yasm_objfmts</refentrytitle>
<manvolnum>7</manvolnum>
</citerefentry>
<quote>help</quote> as <replaceable>debug</replaceable>. See
<citerefentry>
- <refentrytitle>yasm_dbgfmt</refentrytitle>
+ <refentrytitle>yasm_dbgfmts</refentrytitle>
<manvolnum>7</manvolnum>
</citerefentry>
<manvolnum>7</manvolnum>
</citerefentry>,
<citerefentry>
- <refentrytitle>yasm_dbgfmt</refentrytitle>
+ <refentrytitle>yasm_dbgfmts</refentrytitle>
<manvolnum>7</manvolnum>
</citerefentry>,
<citerefentry>
- <refentrytitle>yasm_objfmt</refentrytitle>
+ <refentrytitle>yasm_objfmts</refentrytitle>
<manvolnum>7</manvolnum>
</citerefentry>,
<citerefentry>
<refentry id="yasm_arch">
<refentryinfo>
- <title>Yasm Supported Target Architectures</title>
+ <title>Yasm Supported Architectures</title>
<date>October 2006</date>
- <productname>YASM</productname>
+ <productname>Yasm</productname>
<author>
<firstname>Peter</firstname>
<surname>Johnson</surname>
include modules/dbgfmts/dwarf2/Makefile.inc
include modules/dbgfmts/null/Makefile.inc
include modules/dbgfmts/stabs/Makefile.inc
+
+dist_man_MANS += yasm_dbgfmts.7
+
+if BUILD_MAN
+yasm_dbgfmts.7: modules/dbgfmts/yasm_dbgfmts.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/dbgfmts/yasm_dbgfmts.xml
+endif
+
+EXTRA_DIST += modules/dbgfmts/yasm_dbgfmts.xml
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+
+<!-- $Id$ -->
+
+<refentry id="yasm_dbgfmts">
+
+ <refentryinfo>
+ <title>Yasm Supported Debug Formats</title>
+ <date>October 2006</date>
+ <productname>Yasm</productname>
+ <author>
+ <firstname>Peter</firstname>
+ <surname>Johnson</surname>
+ <affiliation>
+ <address><email>peter@tortall.net</email></address>
+ </affiliation>
+ </author>
+
+ <copyright>
+ <year>2006</year>
+ <holder>Peter Johnson</holder>
+ </copyright>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>yasm_dbgfmts</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>yasm_dbgfmts</refname>
+ <refpurpose>Yasm Supported Debugging Formats</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>yasm</command>
+ <arg choice="plain">
+ <option>-g <replaceable>dbgfmt</replaceable></option>
+ </arg>
+ <arg choice="plain">
+ <option><replaceable>...</replaceable></option>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The standard Yasm distribution includes a number of modules
+ for different debugging formats. The debugging information is
+ embedded into the object file. Use of a non-<quote>null</quote>
+ debug format also causes Yasm to output all symbols to the object
+ file (including local symbols).</para>
+
+ <para>The debug format is selected on the
+
+ <citerefentry>
+ <refentrytitle>yasm</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>
+
+ command line by use of the <option>-g
+ <replaceable>dbgfmt</replaceable></option> command line
+ option.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>cv8</title>
+
+ <para>The CV8 debug format is used by Microsoft Visual Studio 2005
+ (version 8.0) and is completely undocumented, although it bears
+ strong similarities to earlier CodeView formats. Yasm's support
+ for the CV8 debug format is currently limited to generating
+ assembly-level line number information (to allow some level of
+ source-level debugging). The CV8 debug information is stored in
+ the .debug$S and .debug$T sections of the Win64 object file.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>dwarf2</title>
+
+ <para>The DWARF 2 debug format is a complex, well-documented
+ standard for debugging information. It was created to overcome
+ shortcomings in STABS, allowing for much more detailed and compact
+ descriptions of data structures, data variable movement, and
+ complex language structures such as in C++. The debugging
+ information is stored in sections (just like normal program
+ sections) in the object file. Yasm supports full pass-through of
+ DWARF2 debugging information (e.g. from a C++ compiler), and can
+ also generate assembly-level line number information.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>null</title>
+
+ <para>The <quote>null</quote> debug format is a placeholder; it adds
+ no debugging information to the output file.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>stabs</title>
+
+ <para>The STABS debug format is a poorly documented, semi-standard
+ format for debugging information in COFF and ELF object files. The
+ debugging information is stored as part of the object file's symbol
+ table and thus is limited in complexity and scope. Despite this,
+ STABS is a common debugging format on older Unix and compatible
+ systems, as well as DJGPP.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>yasm</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>,
+
+ <citerefentry>
+ <refentrytitle>yasm_objfmts</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </citerefentry></para>
+ </refsect1>
+</refentry>
include modules/objfmts/win32/Makefile.inc
include modules/objfmts/win64/Makefile.inc
include modules/objfmts/xdf/Makefile.inc
+
+dist_man_MANS += yasm_objfmts.7
+
+if BUILD_MAN
+yasm_objfmts.7: modules/objfmts/yasm_objfmts.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/objfmts/yasm_objfmts.xml
+endif
+
+EXTRA_DIST += modules/objfmts/yasm_objfmts.xml
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+
+<!-- $Id$ -->
+
+<refentry id="yasm_objfmts">
+
+ <refentryinfo>
+ <title>Yasm Supported Object Formats</title>
+ <date>October 2006</date>
+ <productname>Yasm</productname>
+ <author>
+ <firstname>Peter</firstname>
+ <surname>Johnson</surname>
+ <affiliation>
+ <address><email>peter@tortall.net</email></address>
+ </affiliation>
+ </author>
+
+ <copyright>
+ <year>2006</year>
+ <holder>Peter Johnson</holder>
+ </copyright>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>yasm_objfmts</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>yasm_objfmts</refname>
+ <refpurpose>Yasm Supported Object Formats</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>yasm</command>
+ <arg choice="plain">
+ <option>-f <replaceable>objfmt</replaceable></option>
+ </arg>
+ <arg choice="plain">
+ <option><replaceable>...</replaceable></option>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The standard Yasm distribution includes a number of modules
+ for different object formats (Yasm's primary output).</para>
+
+ <para>The object format is selected on the
+
+ <citerefentry>
+ <refentrytitle>yasm</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>
+
+ command line by use of the <option>-f
+ <replaceable>objfmt</replaceable></option> command line
+ option.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>bin</title>
+
+ <para>The <quote>bin</quote> object format produces a flat-format,
+ non-relocatable binary file. It is appropriate for producing DOS
+ .COM executables or things like boot blocks. It supports only 3
+ sections and those sections are written in a predefined order to
+ the output file.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>coff</title>
+
+ <para>The COFF object format is an older relocatable object format
+ used on older Unix and compatible systems, and also (more recently)
+ on the DJGPP development system for DOS.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>dbg</title>
+
+ <para>The <quote>dbg</quote> object format is not a
+ <quote>real</quote> object format; the output file it creates
+ simply describes the sequence of calls made to it by Yasm and the
+ final object and symbol table information in a human-readable text
+ format (that in a normal object format would get processed into
+ that object format's particular binary representation). This
+ object format is not intended for real use, but rather for
+ debugging Yasm's internals.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>elf</title>
+
+ <para>The ELF object format really comes in two flavors:
+ <quote>elf32</quote> (for 32-bit targets) and <quote>elf64</quote>
+ (for 64-bit targets). ELF is a standard object format in common
+ use on modern Unix and compatible systems (e.g. Linux, FreeBSD).
+ ELF has complex support for relocatable and shared objects.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>rdf</title>
+
+ <para>The RDOFF2 object format is a simple multi-section format
+ originally designed for NASM. It supports segment references but
+ not WRT references. It was designed primarily for simplicity and
+ has minimalistic headers for ease of loading and linking. A
+ complete toolchain (linker, librarian, and loader) is distributed
+ with NASM.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>win32</title>
+
+ <para>The Win32 object format produces object files compatible with
+ Microsoft compilers (such as Visual C++) that target the 32-bit x86
+ Windows platform. The object format itself is an extended version
+ of COFF.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>win64</title>
+
+ <para>The Win64 object format produces object files compatible with
+ Microsoft compilers that target the 64-bit <quote>x64</quote>
+ Windows platform. This format is very similar to the win32 object
+ format, but produces 64-bit objects.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>xdf</title>
+
+ <para>The XDF object format is essentially a simplified version of
+ COFF. It's a multi-section relocatable format that supports 64-bit
+ physical and virtual addresses.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>yasm</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>,
+
+ <citerefentry>
+ <refentrytitle>yasm_arch</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </citerefentry></para>
+ </refsect1>
+</refentry>
include modules/parsers/gas/Makefile.inc
include modules/parsers/nasm/Makefile.inc
+
+dist_man_MANS += yasm_parsers.7
+
+if BUILD_MAN
+yasm_parsers.7: modules/parsers/yasm_parsers.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/parsers/yasm_parsers.xml
+endif
+
+EXTRA_DIST += modules/parsers/yasm_parsers.xml
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+
+<!-- $Id$ -->
+
+<refentry id="yasm_parsers">
+
+ <refentryinfo>
+ <title>Yasm Supported Parsers</title>
+ <date>October 2006</date>
+ <productname>Yasm</productname>
+ <author>
+ <firstname>Peter</firstname>
+ <surname>Johnson</surname>
+ <affiliation>
+ <address><email>peter@tortall.net</email></address>
+ </affiliation>
+ </author>
+
+ <copyright>
+ <year>2006</year>
+ <holder>Peter Johnson</holder>
+ </copyright>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>yasm_parsers</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>yasm_parsers</refname>
+ <refpurpose>Yasm Supported Parsers (Assembler Syntaxes)</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>yasm</command>
+ <arg choice="plain">
+ <option>-p <replaceable>parser</replaceable></option>
+ </arg>
+ <arg choice="opt">
+ <option>-r <replaceable>preproc</replaceable></option>
+ </arg>
+ <arg choice="plain">
+ <option><replaceable>...</replaceable></option>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The standard Yasm distribution includes a number of modules
+ for different parsers (assembler syntaxes).</para>
+
+ <para>The parser is selected on the
+
+ <citerefentry>
+ <refentrytitle>yasm</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>
+
+ command line by use of the <option>-p
+ <replaceable>parser</replaceable></option> command line
+ option.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>NASM Parser</title>
+
+ <para>NASM syntax, selected with <option>-p nasm</option>, is the
+ most full-featured syntax supported by Yasm. Yasm is nearly 100%
+ compatible with NASM for 16-bit and 32-bit x86 code. Yasm
+ additionally supports 64-bit AMD64 code with Yasm extensions to the
+ NASM syntax; see
+
+ <citerefentry>
+ <refentrytitle>yasm_arch</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </citerefentry>
+
+ for details. NASM syntax is the Yasm default.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>GAS Parser</title>
+
+ <para>The GNU Assembler (GAS) is the de-facto cross-platform
+ assembler for modern Unix systems, and is used as the backend for
+ the GCC compiler. Yasm's support for GAS syntax is moderately
+ good, although immature: not all directives are supported, and only
+ 32-bit x86 and AMD64 architectures are supported. There is also no
+ support for the GAS preprocessor. Despite these limitations,
+ Yasm's GAS syntax support is good enough to handle essentially all
+ x86 and AMD64 GCC compiler output. The GAS parser can be selected
+ with <option>-p gas</option>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para><citerefentry>
+ <refentrytitle>yasm</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>,
+
+ <citerefentry>
+ <refentrytitle>yasm_arch</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </citerefentry></para>
+ </refsect1>
+</refentry>
\(lqhelp\(rq
as
\fIformat\fR. See
-\fByasm_objfmt\fR(7)
+\fByasm_objfmts\fR(7)
for a list of supported object formats.
.TP 3n
\fB\-g \fR\fB\fIdebug\fR\fR or \fB\-\-dformat=\fR\fB\fIdebug\fR\fR: Select debugging format
\(lqhelp\(rq
as
\fIdebug\fR. See
-\fByasm_dbgfmt\fR(7)
+\fByasm_dbgfmts\fR(7)
for a list of supported debugging formats.
.TP 3n
\fB\-h\fR or \fB\-\-help\fR: Print a summary of options
.SH "SEE ALSO"
.PP
\fByasm_arch\fR(7),
-\fByasm_dbgfmt\fR(7),
-\fByasm_objfmt\fR(7),
+\fByasm_dbgfmts\fR(7),
+\fByasm_objfmts\fR(7),
\fByasm_parsers\fR(7)
.PP
Related tools:
.\" Author: Peter Johnson <peter@tortall.net>
.\" Generator: DocBook XSL Stylesheets v1.70.1 <http://docbook.sf.net/>
.\" Date: October 2006
-.\" Manual: Yasm Supported Target Architectures
-.\" Source: YASM
+.\" Manual: Yasm Supported Architectures
+.\" Source: Yasm
.\"
-.TH "YASM_ARCH" "7" "October 2006" "YASM" "Yasm Supported Target Architec"
+.TH "YASM_ARCH" "7" "October 2006" "Yasm" "Yasm Supported Architectures"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
--- /dev/null
+.\" Title: yasm_dbgfmts
+.\" Author: Peter Johnson <peter@tortall.net>
+.\" Generator: DocBook XSL Stylesheets v1.70.1 <http://docbook.sf.net/>
+.\" Date: October 2006
+.\" Manual: Yasm Supported Debug Formats
+.\" Source: Yasm
+.\"
+.TH "YASM_DBGFMTS" "7" "October 2006" "Yasm" "Yasm Supported Debug Formats"
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.SH "NAME"
+yasm_dbgfmts \- Yasm Supported Debugging Formats
+.SH "SYNOPSIS"
+.HP 5
+\fByasm\fR \fB\-g\ \fR\fB\fIdbgfmt\fR\fR \fB\fI...\fR\fR
+.SH "DESCRIPTION"
+.PP
+The standard Yasm distribution includes a number of modules for different debugging formats. The debugging information is embedded into the object file. Use of a non\-\(lqnull\(rq
+debug format also causes Yasm to output all symbols to the object file (including local symbols).
+.PP
+The debug format is selected on the
+\fByasm\fR(1)
+command line by use of the
+\fB\-g \fR\fB\fIdbgfmt\fR\fR
+command line option.
+.SH "CV8"
+.PP
+The CV8 debug format is used by Microsoft Visual Studio 2005 (version 8.0) and is completely undocumented, although it bears strong similarities to earlier CodeView formats. Yasm's support for the CV8 debug format is currently limited to generating assembly\-level line number information (to allow some level of source\-level debugging). The CV8 debug information is stored in the .debug$S and .debug$T sections of the Win64 object file.
+.SH "DWARF2"
+.PP
+The DWARF 2 debug format is a complex, well\-documented standard for debugging information. It was created to overcome shortcomings in STABS, allowing for much more detailed and compact descriptions of data structures, data variable movement, and complex language structures such as in C++. The debugging information is stored in sections (just like normal program sections) in the object file. Yasm supports full pass\-through of DWARF2 debugging information (e.g. from a C++ compiler), and can also generate assembly\-level line number information.
+.SH "NULL"
+.PP
+The
+\(lqnull\(rq
+debug format is a placeholder; it adds no debugging information to the output file.
+.SH "STABS"
+.PP
+The STABS debug format is a poorly documented, semi\-standard format for debugging information in COFF and ELF object files. The debugging information is stored as part of the object file's symbol table and thus is limited in complexity and scope. Despite this, STABS is a common debugging format on older Unix and compatible systems, as well as DJGPP.
+.SH "SEE ALSO"
+.PP
+\fByasm\fR(1),
+\fByasm_objfmts\fR(7)
+.SH "AUTHOR"
+.PP
+\fBPeter\fR \fBJohnson\fR <peter@tortall.net>
+.sp -1n
+.IP "" 3n
+Author.
+.SH "COPYRIGHT"
+Copyright \(co 2006 Peter Johnson
--- /dev/null
+.\" Title: yasm_objfmts
+.\" Author: Peter Johnson <peter@tortall.net>
+.\" Generator: DocBook XSL Stylesheets v1.70.1 <http://docbook.sf.net/>
+.\" Date: October 2006
+.\" Manual: Yasm Supported Object Formats
+.\" Source: Yasm
+.\"
+.TH "YASM_OBJFMTS" "7" "October 2006" "Yasm" "Yasm Supported Object Formats"
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.SH "NAME"
+yasm_objfmts \- Yasm Supported Object Formats
+.SH "SYNOPSIS"
+.HP 5
+\fByasm\fR \fB\-f\ \fR\fB\fIobjfmt\fR\fR \fB\fI...\fR\fR
+.SH "DESCRIPTION"
+.PP
+The standard Yasm distribution includes a number of modules for different object formats (Yasm's primary output).
+.PP
+The object format is selected on the
+\fByasm\fR(1)
+command line by use of the
+\fB\-f \fR\fB\fIobjfmt\fR\fR
+command line option.
+.SH "BIN"
+.PP
+The
+\(lqbin\(rq
+object format produces a flat\-format, non\-relocatable binary file. It is appropriate for producing DOS .COM executables or things like boot blocks. It supports only 3 sections and those sections are written in a predefined order to the output file.
+.SH "COFF"
+.PP
+The COFF object format is an older relocatable object format used on older Unix and compatible systems, and also (more recently) on the DJGPP development system for DOS.
+.SH "DBG"
+.PP
+The
+\(lqdbg\(rq
+object format is not a
+\(lqreal\(rq
+object format; the output file it creates simply describes the sequence of calls made to it by Yasm and the final object and symbol table information in a human\-readable text format (that in a normal object format would get processed into that object format's particular binary representation). This object format is not intended for real use, but rather for debugging Yasm's internals.
+.SH "ELF"
+.PP
+The ELF object format really comes in two flavors:
+\(lqelf32\(rq
+(for 32\-bit targets) and
+\(lqelf64\(rq
+(for 64\-bit targets). ELF is a standard object format in common use on modern Unix and compatible systems (e.g. Linux, FreeBSD). ELF has complex support for relocatable and shared objects.
+.SH "RDF"
+.PP
+The RDOFF2 object format is a simple multi\-section format originally designed for NASM. It supports segment references but not WRT references. It was designed primarily for simplicity and has minimalistic headers for ease of loading and linking. A complete toolchain (linker, librarian, and loader) is distributed with NASM.
+.SH "WIN32"
+.PP
+The Win32 object format produces object files compatible with Microsoft compilers (such as Visual C++) that target the 32\-bit x86 Windows platform. The object format itself is an extended version of COFF.
+.SH "WIN64"
+.PP
+The Win64 object format produces object files compatible with Microsoft compilers that target the 64\-bit
+\(lqx64\(rq
+Windows platform. This format is very similar to the win32 object format, but produces 64\-bit objects.
+.SH "XDF"
+.PP
+The XDF object format is essentially a simplified version of COFF. It's a multi\-section relocatable format that supports 64\-bit physical and virtual addresses.
+.SH "SEE ALSO"
+.PP
+\fByasm\fR(1),
+\fByasm_arch\fR(7)
+.SH "AUTHOR"
+.PP
+\fBPeter\fR \fBJohnson\fR <peter@tortall.net>
+.sp -1n
+.IP "" 3n
+Author.
+.SH "COPYRIGHT"
+Copyright \(co 2006 Peter Johnson
--- /dev/null
+.\" Title: yasm_parsers
+.\" Author: Peter Johnson <peter@tortall.net>
+.\" Generator: DocBook XSL Stylesheets v1.70.1 <http://docbook.sf.net/>
+.\" Date: October 2006
+.\" Manual: Yasm Supported Parsers
+.\" Source: Yasm
+.\"
+.TH "YASM_PARSERS" "7" "October 2006" "Yasm" "Yasm Supported Parsers"
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.SH "NAME"
+yasm_parsers \- Yasm Supported Parsers (Assembler Syntaxes)
+.SH "SYNOPSIS"
+.HP 5
+\fByasm\fR \fB\-p\ \fR\fB\fIparser\fR\fR [\fB\-r\ \fR\fB\fIpreproc\fR\fR] \fB\fI...\fR\fR
+.SH "DESCRIPTION"
+.PP
+The standard Yasm distribution includes a number of modules for different parsers (assembler syntaxes).
+.PP
+The parser is selected on the
+\fByasm\fR(1)
+command line by use of the
+\fB\-p \fR\fB\fIparser\fR\fR
+command line option.
+.SH "NASM PARSER"
+.PP
+NASM syntax, selected with
+\fB\-p nasm\fR, is the most full\-featured syntax supported by Yasm. Yasm is nearly 100% compatible with NASM for 16\-bit and 32\-bit x86 code. Yasm additionally supports 64\-bit AMD64 code with Yasm extensions to the NASM syntax; see
+\fByasm_arch\fR(7)
+for details. NASM syntax is the Yasm default.
+.SH "GAS PARSER"
+.PP
+The GNU Assembler (GAS) is the de\-facto cross\-platform assembler for modern Unix systems, and is used as the backend for the GCC compiler. Yasm's support for GAS syntax is moderately good, although immature: not all directives are supported, and only 32\-bit x86 and AMD64 architectures are supported. There is also no support for the GAS preprocessor. Despite these limitations, Yasm's GAS syntax support is good enough to handle essentially all x86 and AMD64 GCC compiler output. The GAS parser can be selected with
+\fB\-p gas\fR.
+.SH "SEE ALSO"
+.PP
+\fByasm\fR(1),
+\fByasm_arch\fR(7)
+.SH "AUTHOR"
+.PP
+\fBPeter\fR \fBJohnson\fR <peter@tortall.net>
+.sp -1n
+.IP "" 3n
+Author.
+.SH "COPYRIGHT"
+Copyright \(co 2006 Peter Johnson