mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-03-19 18:00:23 +08:00
90 lines
4.2 KiB
Plaintext
90 lines
4.2 KiB
Plaintext
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, various makefiles are provided:
|
|
- Makefile.dos, the one I build the standard releases from, designed
|
|
for a hybrid system using Microsoft C and Borland Make (don't ask
|
|
why :-)
|
|
- Makefile.bor (for Borland C)
|
|
- Makefile.bc2 (also for Borland C, contributed by Fox Cutter
|
|
<lmb@comtch.iea.com>, may work better than Makefile.bor in some
|
|
cases).
|
|
- Makefile.wc, for Watcom C, compiling to a 32-bit extended DOS
|
|
executable. Contributed by Dominik Behr.
|
|
- Makefile.wcw, also for Watcom C, compiling to a Win32 command-
|
|
line application. Also contributed by Dominik Behr.
|
|
|
|
I don't guarantee that any of those, other than Makefile.dos, work,
|
|
since I don't have the compilers to test them myself. Also be
|
|
warned: I have had various conflicting reports regarding building
|
|
NASM using Borland C. Several people have informed me that it
|
|
doesn't work except under Huge model, and one or two have said that
|
|
it doesn't work under Huge model either.
|
|
|
|
Dominik Behr has also contributed the file misc/pmw.bat, which is a
|
|
batch file to turn the output from Makefile.wc (NASM.EXE and
|
|
NDISASM.EXE) into standalone executables incorporating Tran's
|
|
PMODE/W DOS extender, rather than depending on an external extender
|
|
program.
|
|
|
|
If you're trying to unpack the DOS (.ZIP format) archive under Unix
|
|
instead of using the .tar.gz version, you can save some time by
|
|
doing `unzip -aL', which will convert the DOS-format text files to
|
|
Unix and also convert all names to lower case.
|
|
|
|
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.
|
|
|
|
Matt Mastracci has written a document explaining how to write
|
|
assembly language modules in DJGPP programs using NASM: it's on his
|
|
web site at http://www.ucalgary.ca/~mmastrac/djgppasm.doc.
|
|
|
|
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
|
|
`internal.doc'. (In particular, _please_ read `internal.doc' before
|
|
writing any code for us...)
|
|
|
|
Bug reports (and patches if you can) should be sent to
|
|
<jules@dcs.warwick.ac.uk> or <anakin@pobox.com>.
|