summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDebbie Wiles <debs@dwiles.demon.co.uk>2002-05-22 20:14:52 +0000
committerDebbie Wiles <debs@dwiles.demon.co.uk>2002-05-22 20:14:52 +0000
commit9642d4fd7f2751a47313f362be1330135a816625 (patch)
treeff912861123753b48bbd74853f5b36fffa9e4499 /doc
parent8311d9f3109a8d14fb84769318081ebd12266f5d (diff)
downloadnasm-9642d4fd7f2751a47313f362be1330135a816625.tar.gz
nasm-9642d4fd7f2751a47313f362be1330135a816625.tar.bz2
nasm-9642d4fd7f2751a47313f362be1330135a816625.zip
Updated documentation for the STRICT keyword.
Diffstat (limited to 'doc')
-rw-r--r--doc/nasmdoc.src19
1 files changed, 11 insertions, 8 deletions
diff --git a/doc/nasmdoc.src b/doc/nasmdoc.src
index 02f8387..6fb734b 100644
--- a/doc/nasmdoc.src
+++ b/doc/nasmdoc.src
@@ -701,7 +701,8 @@ The syntax is:
are optimised, unless the long form is specified.
\b \c{-On} multi-pass optimization, minimize branch offsets; also will
- minimize signed immediate bytes, overriding size specification.
+ minimize signed immediate bytes, overriding size specification
+ when the \c{strict} keyword hasn't been used (see \k{strict}).
If 2 <= n <= 3, then there are 5 * n passes, otherwise there
are n passes.
@@ -1481,13 +1482,12 @@ invent one using the macro processor.
\H{strict} \i\c{STRICT}: Inhibiting Optimization
-When compiling with the optimizer set to level 2 or higher (see
-\k{opt-On}), NASM will use size specifiers (\c{BYTE}, \c{WORD},
-\c{DWORD}, \c{QWORD}, or \c{TWORD}) strictly to choose the address- or
-operand-size of the instruction. The keyword \c{STRICT} can be used
-to inhibit optimization and force a particular operand to be emitted
-in the specified size. For example, with the optimizer on, and in
-\c{BITS 16} mode,
+When assembling with the optimizer set to level 2 or higher (see
+\k{opt-On}), NASM will override size specifiers (\c{BYTE}, \c{WORD},
+\c{DWORD}, \c{QWORD}, or \c{TWORD}), giving them the smallest possible
+size. The keyword \c{STRICT} can be used to inhibit optimization and
+force a particular operand to be emitted in the specified size.
+For example, with the optimizer on, and in \c{BITS 16} mode,
\c push dword 33
@@ -1498,6 +1498,9 @@ is encoded in three bytes \c{66 6A 21}, whereas
is encoded in six bytes, with a full dword immediate operand \c{66 68
21 00 00 00}.
+With the optimizer off, the same code (six bytes) is generated whether
+the \c{STRICT} keyword was used or not.
+
\H{crit} \i{Critical Expressions}