Command Line Switches for NASM 0.98++
Value Meaning
@ <File> Get parameters from response file. Parameters can be all on one line. Must be first option given! Not available in all compiles.
-@ <File> Get parameters from response file (one per line).
-a Don't Preprocess - assemble only.
-D or -d <Macro> Pre-define a macro. A value may be included.
-e Preprocess only
-E <File> Send errors to file.
-f <format> Output formats:
aout, aoutb, as86, bin (default), coff, dbg, elf, ieee, obj, rdoff, win32
Not all formats available in all compiles!
Use "-hf" for a compile-specific list.
-F <Format> Format for debug info.
-g Use debug info.
-h Show a brief help screen.
-hf List available (in this compile) output formats.
-I or -i <Path> Path for include files. Must include trailing slash or backslash! Nasm doesn't know which you want.
-l <File> Generate listing file.
-M Generate Makefile dependencies on stdout.
-o <file> Name output file. Default depends on output format.
-P or -p <file> Pre-include a file.
--POSTFIX <text> Appends text to global variable names.
--PREFIX <text> Prepends text to global variable names.
-r Show version info.
-s Send errors to Stdout
-t Enable Tasm Compatibility mode. Not available in all compiles. -DTASM_COMPAT to compile it in.
-U or -u <Macro> Un-define a macro.
-w+ or -w-<Warning Option> Enable/Disable warnings.(default)
No White Space allowed after +/-!
Can be used as directives, also, to turn warnings on and off across parts of your source.
-y Show debug formats.
"borland" only?

Except for the "-w" switch, a space is optional - either "-fobj" or "-f obj" is valid.

The environment variable "NASM=" can be set to command line switches to be used by default.
Example: "set NASM=-w+orphan-labels"

Internally, Nasm is case-sensitive. To force the object file to uppercase, the "UPPERCASE" directive is used in the file, rather than a command line switch.

Nasm has no provision for passing commands to a linker ( or invoking one ).