mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
Documented the %! (get environment) preprocessor directive.
This commit is contained in:
parent
3ab8de6a14
commit
585d422f14
@ -3213,10 +3213,17 @@ as shown in the example.
|
||||
|
||||
\H{otherpreproc} \i{Other Preprocessor Directives}
|
||||
|
||||
NASM also has preprocessor directives which allow access to
|
||||
information from external sources. Currently they include:
|
||||
|
||||
The following preprocessor directive is supported to allow NASM to
|
||||
correctly handle output of the cpp C language preprocessor.
|
||||
|
||||
\b\c{%line} (see \k{line})
|
||||
\b\c{%line} enables NAsM to correctly handle the output of the cpp
|
||||
C language preprocessor (see \k{line}).
|
||||
|
||||
\b\c{%!} enables NASM to read in the value of an environment variable,
|
||||
which can then be used in your program (see \k{getenv}).
|
||||
|
||||
\S{line} \i\c{%line} Directive
|
||||
|
||||
@ -3245,6 +3252,30 @@ After reading a \c{%line} preprocessor directive, NASM will report
|
||||
all file name and line numbers relative to the values specified
|
||||
therein.
|
||||
|
||||
|
||||
\S{getenv} \i\c{%!}\c{<env>}: Read an environment variable.
|
||||
|
||||
The \c{%!<env>} directive makes it possible to read the value of an
|
||||
environment variable at assembly time. This could, for example, be used
|
||||
to store the contents of an environment variable into a string, which
|
||||
could be used at some other point in your code.
|
||||
|
||||
For example, you may want to embed the path to your TEMP directory
|
||||
in your program. As this is usually stored in an environment variable
|
||||
called TEMP, this could be coded as follows:
|
||||
|
||||
\c %define TEMP %!TEMP
|
||||
\c %define quote '
|
||||
\c
|
||||
\c tmpstr db quote TEMP quote
|
||||
|
||||
At the time of writing, this will generate an "unterminated string"
|
||||
warning at the time of defining "quote", and it will add a space
|
||||
before and after the string that is read in. I was unable to find
|
||||
a simple workaround, so I believe that you will need to allow for
|
||||
the extra spaces if you make use of this feature in that way.
|
||||
|
||||
|
||||
\C{directive} \i{Assembler Directives}
|
||||
|
||||
NASM, though it attempts to avoid the bureaucracy of assemblers like
|
||||
|
Loading…
Reference in New Issue
Block a user