Intel 64 and IA-32 Architectures Software Developers Manual Volume 2A, Instruction Set Reference, A-M

Vol. 2 3-9
INSTRUCTION SET REFERENCE, A-M
ELSE
IF Instruction MOVQ
THEN OperandSize 64;
FI;
FI;
FI;
See “Operand-Size and Address-Size Attributes” in Chapter 3 of the Intel® 64
and IA-32 Architectures Software Developer’s Manual, Volume 1, for guidelines
on how these attributes are determined.
StackAddrSize — Represents the stack address-size attribute associated with
the instruction, which has a value of 16, 32 or 64-bits. See “Address-Size
Attribute for Stack” in Chapter 6, “Procedure Calls, Interrupts, and Exceptions,
of the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume
1.
SRC — Represents the source operand.
DEST — Represents the destination operand.
The following functions are used in the algorithmic descriptions:
ZeroExtend(value) — Returns a value zero-extended to the operand-size
attribute of the instruction. For example, if the operand-size attribute is 32, zero
extending a byte value of –10 converts the byte from F6H to a doubleword value
of 000000F6H. If the value passed to the ZeroExtend function and the operand-
size attribute are the same size, ZeroExtend returns the value unaltered.
SignExtend(value) — Returns a value sign-extended to the operand-size
attribute of the instruction. For example, if the operand-size attribute is 32, sign
extending a byte containing the value –10 converts the byte from F6H to a
doubleword value of FFFFFFF6H. If the value passed to the SignExtend function
and the operand-size attribute are the same size, SignExtend returns the value
unaltered.
SaturateSignedWordToSignedByte — Converts a signed 16-bit value to a
signed 8-bit value. If the signed 16-bit value is less than –128, it is represented
by the saturated value -128 (80H); if it is greater than 127, it is represented by
the saturated value 127 (7FH).
SaturateSignedDwordToSignedWord — Converts a signed 32-bit value to a
signed 16-bit value. If the signed 32-bit value is less than –32768, it is
represented by the saturated value –32768 (8000H); if it is greater than 32767,
it is represented by the saturated value 32767 (7FFFH).
SaturateSignedWordToUnsignedByte — Converts a signed 16-bit value to an
unsigned 8-bit value. If the signed 16-bit value is less than zero, it is represented
by the saturated value zero (00H); if it is greater than 255, it is represented by
the saturated value 255 (FFH).
SaturateToSignedByte — Represents the result of an operation as a signed
8-bit value. If the result is less than –128, it is represented by the saturated value