mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-01-30 16:41:05 +08:00
Document oword, do and reso
Document oword and the associated do and reso pseudoinstructions.
This commit is contained in:
parent
41c9f6fde0
commit
0edc309505
@ -1115,19 +1115,19 @@ indicate what size of \i{memory operand} it refers to.
|
||||
\H{pseudop} \i{Pseudo-Instructions}
|
||||
|
||||
Pseudo-instructions are things which, though not real x86 machine
|
||||
instructions, are used in the instruction field anyway because
|
||||
that's the most convenient place to put them. The current
|
||||
pseudo-instructions are \i\c{DB}, \i\c{DW}, \i\c{DD}, \i\c{DQ} and
|
||||
\i\c{DT}, their \i{uninitialized} counterparts \i\c{RESB},
|
||||
\i\c{RESW}, \i\c{RESD}, \i\c{RESQ} and \i\c{REST}, the \i\c{INCBIN}
|
||||
instructions, are used in the instruction field anyway because that's
|
||||
the most convenient place to put them. The current pseudo-instructions
|
||||
are \i\c{DB}, \i\c{DW}, \i\c{DD}, \i\c{DQ}, \i\c{DT} and \i\c{DO};
|
||||
their \i{uninitialized} counterparts \i\c{RESB}, \i\c{RESW},
|
||||
\i\c{RESD}, \i\c{RESQ}, \i\c{REST} and \i\c{RESO}; the \i\c{INCBIN}
|
||||
command, the \i\c{EQU} command, and the \i\c{TIMES} prefix.
|
||||
|
||||
|
||||
\S{db} \c{DB} and friends: Declaring initialized Data
|
||||
|
||||
\i\c{DB}, \i\c{DW}, \i\c{DD}, \i\c{DQ} and \i\c{DT} are used, much
|
||||
as in MASM, to declare initialized data in the output file. They can
|
||||
be invoked in a wide range of ways:
|
||||
\i\c{DB}, \i\c{DW}, \i\c{DD}, \i\c{DQ}, \i\c{DT} and \i\c{DO} are
|
||||
used, much as in MASM, to declare initialized data in the output
|
||||
file. They can be invoked in a wide range of ways:
|
||||
\I{floating-point}\I{character constant}\I{string constant}
|
||||
|
||||
\c db 0x55 ; just the byte 0x55
|
||||
@ -1144,20 +1144,20 @@ be invoked in a wide range of ways:
|
||||
\c dq 1.234567e20 ; double-precision float
|
||||
\c dt 1.234567e20 ; extended-precision float
|
||||
|
||||
\c{DT} does not accept \i{numeric constants} as operands.
|
||||
\c{DT} and \c{DO} do not accept \i{numeric constants} as operands.
|
||||
|
||||
|
||||
\S{resb} \c{RESB} and friends: Declaring \i{Uninitialized} Data
|
||||
|
||||
\i\c{RESB}, \i\c{RESW}, \i\c{RESD}, \i\c{RESQ} and \i\c{REST} are
|
||||
designed to be used in the BSS section of a module: they declare
|
||||
\e{uninitialized} storage space. Each takes a single operand, which
|
||||
is the number of bytes, words, doublewords or whatever to reserve.
|
||||
As stated in \k{qsother}, NASM does not support the MASM/TASM syntax
|
||||
of reserving uninitialized space by writing \I\c{?}\c{DW ?} or
|
||||
similar things: this is what it does instead. The operand to a
|
||||
\c{RESB}-type pseudo-instruction is a \i\e{critical expression}: see
|
||||
\k{crit}.
|
||||
\i\c{RESB}, \i\c{RESW}, \i\c{RESD}, \i\c{RESQ}, \i\c{REST} and
|
||||
\i\c{RESO} are designed to be used in the BSS section of a module:
|
||||
they declare \e{uninitialized} storage space. Each takes a single
|
||||
operand, which is the number of bytes, words, doublewords or whatever
|
||||
to reserve. As stated in \k{qsother}, NASM does not support the
|
||||
MASM/TASM syntax of reserving uninitialized space by writing
|
||||
\I\c{?}\c{DW ?} or similar things: this is what it does instead. The
|
||||
operand to a \c{RESB}-type pseudo-instruction is a \i\e{critical
|
||||
expression}: see \k{crit}.
|
||||
|
||||
For example:
|
||||
|
||||
@ -1560,11 +1560,11 @@ invent one using the macro processor.
|
||||
|
||||
When assembling 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}), but will give them the smallest
|
||||
possible size. The keyword \c{STRICT} can be used to inhibit
|
||||
\c{DWORD}, \c{QWORD}, \c{TWORD} or \c{OWORD}), but will give 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,
|
||||
specified size. For example, with the optimizer on, and in \c{BITS 16}
|
||||
mode,
|
||||
|
||||
\c push dword 33
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user