1 This is a distribution of NASM, the Netwide Assembler. NASM is a
2 prototype general-purpose x86 assembler. It will currently output
3 flat-form binary files, a.out, COFF and ELF Unix object files,
4 Microsoft 16-bit DOS and Win32 object files, the as86 object format,
5 and a home-grown format called RDF.
7 Also included is NDISASM, a prototype x86 binary-file disassembler
8 which uses the same instruction table as NASM.
10 To install NASM, you will need GCC. Type `make', and then when it
11 has finished copy the file `nasm' (and maybe `ndisasm') to a
12 directory on your search path (I use /usr/local/bin on my linux
13 machine at home, and ~/bin on other machines where I don't have root
14 access). You may also want to copy the man page `nasm.1' (and maybe
15 `ndisasm.1') to somewhere sensible.
17 If you want to build a restricted version of NASM containing only
18 some of the object file formats, you can achieve this by adding
19 #defines to `outform.h' (see the file itself for documentation), or
20 equivalently by adding compiler command line options in the
23 There is a machine description file for the `LCC' retargetable C
24 compiler, in the directory `lcc', along with instructions for its
25 use. This means that NASM can now be used as the code-generator back
26 end for a useful C compiler.
28 Michael `Wuschel' Tippach has ported his DOS extender `WDOSX' to
29 enable it to work with the 32-bit binary files NASM can output: the
30 original extender and his port `WDOSX/N' are available from his web
31 page, http://www.geocities.com/SiliconValley/Park/4493.
33 The `misc' directory contains `nasm.sl', a NASM editing mode for the
34 JED programmers' editor (see http://space.mit.edu/~davis/jed.html
35 for details about JED). The comment at the start of the file gives
36 instructions on how to install the mode. This directory also
37 contains a file (`magic') containing lines to add to /etc/magic on
38 Unix systems to allow the `file' command to recognise RDF files.
40 The `rdoff' directory contains sources for a linker and loader for
41 the RDF object file format, to run under Linux, and also
42 documentation on the internal structure of RDF files.
44 For information about how you can distribute and use NASM, see the
45 file Licence. We were tempted to put NASM under the GPL, but decided
46 that in many ways it was too restrictive for developers.
48 For information about how to use NASM, see `nasm.doc'. For
49 information about how to use NDISASM, see `ndisasm.doc'. For
50 information about the internal structure of NASM, see
53 Bug reports (and patches if you can) should be sent to
54 jules@dcs.warwick.ac.uk or anakin@pobox.com.