]> granicus.if.org Git - yasm/commitdiff
Add yasm_parsers(7), yasm_objfmts(7), and yasm_dbgfmts(7) man pages,
authorPeter Johnson <peter@tortall.net>
Sat, 21 Oct 2006 18:52:29 +0000 (18:52 -0000)
committerPeter Johnson <peter@tortall.net>
Sat, 21 Oct 2006 18:52:29 +0000 (18:52 -0000)
mostly copied from the yasm manual.

svn path=/trunk/yasm/; revision=1662

13 files changed:
frontends/yasm/yasm.xml
modules/arch/yasm_arch.xml
modules/dbgfmts/Makefile.inc
modules/dbgfmts/yasm_dbgfmts.xml [new file with mode: 0644]
modules/objfmts/Makefile.inc
modules/objfmts/yasm_objfmts.xml [new file with mode: 0644]
modules/parsers/Makefile.inc
modules/parsers/yasm_parsers.xml [new file with mode: 0644]
yasm.1
yasm_arch.7
yasm_dbgfmts.7 [new file with mode: 0644]
yasm_objfmts.7 [new file with mode: 0644]
yasm_parsers.7 [new file with mode: 0644]

index a0d86001b2e98eb46f7c99cc85ed92027115dfd2..8bdd1331ce2069a7c5fdd0e3eccbc4d5eb725b26 100644 (file)
        <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>
index 91c57d77a598ba3149dc52df064bcfda766ba21d..4600291988642ee9ca96d2bee0413052e2db61bf 100644 (file)
@@ -7,9 +7,9 @@
 <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>
index cf0a5ffdf4164f4e4eeae5cfe900a6c6492ddf33..be53622c5c08a80d291dc3677727e46af3d94c03 100644 (file)
@@ -9,3 +9,12 @@ include modules/dbgfmts/codeview/Makefile.inc
 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
diff --git a/modules/dbgfmts/yasm_dbgfmts.xml b/modules/dbgfmts/yasm_dbgfmts.xml
new file mode 100644 (file)
index 0000000..5b15925
--- /dev/null
@@ -0,0 +1,127 @@
+<?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>
index c4e562b5a9f93960ac245aaa02ff7c222041e4ca..4deb57257b2b020a7fa930f77b4f41887738a7c0 100644 (file)
@@ -19,3 +19,12 @@ include modules/objfmts/rdf/Makefile.inc
 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
diff --git a/modules/objfmts/yasm_objfmts.xml b/modules/objfmts/yasm_objfmts.xml
new file mode 100644 (file)
index 0000000..1e9f095
--- /dev/null
@@ -0,0 +1,158 @@
+<?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>
index eabd5f60e967874e1f8a6010143a2cd18332ed06..89bfd35b6a36b7d0152c3880f2a947fc2373fd86 100644 (file)
@@ -5,3 +5,12 @@ EXTRA_DIST += modules/parsers/nasm/Makefile.inc
 
 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
diff --git a/modules/parsers/yasm_parsers.xml b/modules/parsers/yasm_parsers.xml
new file mode 100644 (file)
index 0000000..d29421d
--- /dev/null
@@ -0,0 +1,114 @@
+<?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>
diff --git a/yasm.1 b/yasm.1
index 9f91f5f4a357dceba172dea1aa2ea6122685c86b..a70a3a8ea21a51c27ddc50ceceb959704053b013 100644 (file)
--- a/yasm.1
+++ b/yasm.1
@@ -74,7 +74,7 @@ Selects the output object format. The default object format is
 \(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
@@ -84,7 +84,7 @@ will error when an invalid combination is selected. The default object format is
 \(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
@@ -261,8 +261,8 @@ There is no support for symbol maps.
 .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:
index 7694dd73e4638f5ae901ad69489bc9eec27138cd..dd329c5b4b49290e0e1a88d5d55494f85bf48039 100644 (file)
@@ -2,10 +2,10 @@
 .\"    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)
diff --git a/yasm_dbgfmts.7 b/yasm_dbgfmts.7
new file mode 100644 (file)
index 0000000..2227d8c
--- /dev/null
@@ -0,0 +1,53 @@
+.\"     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
diff --git a/yasm_objfmts.7 b/yasm_objfmts.7
new file mode 100644 (file)
index 0000000..b36288d
--- /dev/null
@@ -0,0 +1,74 @@
+.\"     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
diff --git a/yasm_parsers.7 b/yasm_parsers.7
new file mode 100644 (file)
index 0000000..a418b6f
--- /dev/null
@@ -0,0 +1,48 @@
+.\"     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