Intel 64 and IA-32 Architectures Software Developers Manual Volume 2A, Instruction Set Reference, A-M
3-86 Vol. 2
INSTRUCTION SET REFERENCE, A-M
CALL—Call Procedure
Description
Saves procedure linking information on the stack and branches to the called proce-
dure specified using the target operand. The target operand specifies the address of
the first instruction in the called procedure. The operand can be an immediate value,
a general-purpose register, or a memory location.
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
E8 cw CALL rel16 N.S. Valid Call near, relative, displacement
relative to next instruction.
E8 cd CALL rel32 Valid Valid Call near, relative, displacement
relative to next instruction. 32-bit
displacement sign extended to 64-
bits in 64-bit mode.
FF /2 CALL r/m16 N.E. Valid Call near, absolute indirect, address
given in r/m16.
FF /2 CALL r/m32 N.E. Valid Call near, absolute indirect, address
given in r/m32.
FF /2 CALL r/m64 Valid N.E. Call near, absolute indirect, address
given in r/m64.
9A cd CALL
ptr16:16
Invalid Valid Call far, absolute, address given in
operand.
9A cp CALL
ptr16:32
Invalid Valid Call far, absolute, address given in
operand.
FF /3 CALL
m16:16
Valid Valid Call far, absolute indirect address
given in m16:16.
In 32-bit mode: if selector points to a
gate, then RIP = 32-bit zero extended
displacement taken from gate; else
RIP = zero extended 16-bit offset
from far pointer referenced in the
instruction.
FF /3 CALL
m16:32
Valid Valid In 64-bit mode: If selector points to a
gate, then RIP = 64-bit displacement
taken from gate; else RIP = zero
extended 32-bit offset from far
pointer referenced in the instruction.
REX.W + FF /3 CALL
m16:64
Valid N.E. In 64-bit mode: If selector points to a
gate, then RIP = 64-bit displacement
taken from gate; else RIP = 64-bit
offset from far pointer referenced in
the instruction.