mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-21 03:14:19 +08:00
lcc | ||
misc | ||
rdoff | ||
test | ||
assemble.c | ||
assemble.h | ||
Changes | ||
disasm.c | ||
disasm.h | ||
float.c | ||
float.h | ||
insns.dat | ||
insns.h | ||
insns.pl | ||
internal.doc | ||
labels.c | ||
labels.h | ||
Licence | ||
Makefile | ||
Makefile.bc2 | ||
Makefile.bor | ||
Makefile.dos | ||
names.c | ||
nasm.c | ||
nasm.doc | ||
nasm.h | ||
nasmlib.c | ||
nasmlib.h | ||
ndisasm.c | ||
ndisasm.doc | ||
outaout.c | ||
outas86.c | ||
outbin.c | ||
outcoff.c | ||
outdbg.c | ||
outelf.c | ||
outform.c | ||
outform.h | ||
outobj.c | ||
outrdf.c | ||
parser.c | ||
parser.h | ||
Readme | ||
sync.c | ||
sync.h |
This is a distribution of NASM, the Netwide Assembler. NASM is a prototype general-purpose x86 assembler. It will currently output flat-form binary files, a.out, COFF and ELF Unix object files, Microsoft 16-bit DOS and Win32 object files, the as86 object format, and a home-grown format called RDF. Also included is NDISASM, a prototype x86 binary-file disassembler which uses the same instruction table as NASM. To install NASM on Linux, type `make', and then when it has finished copy the file `nasm' (and maybe `ndisasm') to a directory on your search path (maybe /usr/local/bin, or ~/bin if you don't have root access). You may also want to copy the man page `nasm.1' (and maybe `ndisasm.1') to somewhere sensible. To rebuild the DOS sources, three makefiles are provided: Makefile.dos, the one the standard release is built from, designed for a hybrid system using Microsoft C and Borland Make (don't ask why :-), Makefile.bor (for Borland C) and Makefile.bc2 (also for Borland C, contributed by Fox Cutter <lmb@comtch.iea.com>, may work better than Makefile.bor in some cases). If you want to build a restricted version of NASM containing only some of the object file formats, you can achieve this by adding #defines to `outform.h' (see the file itself for documentation), or equivalently by adding compiler command line options in the Makefile. There is a machine description file for the `LCC' retargetable C compiler, in the directory `lcc', along with instructions for its use. This means that NASM can now be used as the code-generator back end for a useful C compiler. Michael `Wuschel' Tippach has ported his DOS extender `WDOSX' to enable it to work with the 32-bit binary files NASM can output: the original extender and his port `WDOSX/N' are available from his web page, http://www.geocities.com/SiliconValley/Park/4493. The `misc' directory contains `nasm.sl', a NASM editing mode for the JED programmers' editor (see http://space.mit.edu/~davis/jed.html for details about JED). The comment at the start of the file gives instructions on how to install the mode. This directory also contains a file (`magic') containing lines to add to /etc/magic on Unix systems to allow the `file' command to recognise RDF files. The `rdoff' directory contains sources for a linker and loader for the RDF object file format, to run under Linux, and also documentation on the internal structure of RDF files. For information about how you can distribute and use NASM, see the file Licence. We were tempted to put NASM under the GPL, but decided that in many ways it was too restrictive for developers. For information about how to use NASM, see `nasm.doc'. For information about how to use NDISASM, see `ndisasm.doc'. For information about the internal structure of NASM, see `internals.doc'. Bug reports (and patches if you can) should be sent to jules@dcs.warwick.ac.uk or anakin@pobox.com.