diff --git a/doc/64bit.src b/doc/64bit.src index 9a5fda64..4e24d557 100644 --- a/doc/64bit.src +++ b/doc/64bit.src @@ -62,6 +62,8 @@ In 64-bit mode, immediates and displacements are generally only 32 bits wide. NASM will therefore truncate most displacements and immediates to 32 bits. +\S{id64imm} Immediate 64-bit Operands + The only instruction which takes a full \i{64-bit immediate} is: \c MOV reg64,imm64 @@ -97,6 +99,8 @@ instruction is able to reference a symbol anywhere in the 64-bit address space, whereas \c{LEA} is only able to access a symbol within within 2 GB of the instruction itself (see below.) +\S{id64disp} 64-bit Displacements + The only instructions which take a full \I{64-bit displacement}64-bit \e{displacement} is loading or storing, using \c{MOV}, \c{AL}, \c{AX}, \c{EAX} or \c{RAX} (but no other registers) to an absolute 64-bit address. diff --git a/doc/syntax.src b/doc/syntax.src index 0eababcb..5969e875 100644 --- a/doc/syntax.src +++ b/doc/syntax.src @@ -1,5 +1,14 @@ \C{Syntax} Syntax Quirks and Summaries +\H{64moff} 64-bit \i{MOFFS} + +The moffs operand can be used with the \c{MOV} instruction, only using the A +register (AL/AH, AX, EAX, RAX), and for non-64-bit operand size means to address +memory at an offset from a segment. For \I{64-bit immediate} 64-bit operands it +simply accesses memory at a specified offset (since segment based addressing is +mostly unavailable in 64-bit mode). Syntax to use 64-bit offsets to address +memory is showcased in \k{id64disp}. + \H{spliteas} \i{Split EA} Addressing Syntax Instructions that use the mib operand, (that is memory addressed with a base