blob: 18f0e9585d35a1a2f60d6779fca4f72262326cff [file] [log] [blame]
<?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: yasm_parsers.xml 2286 2010-02-13 07:25:23Z peter $ -->
<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. Nearly all of
the GAS preprocessor is also supported. 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>