13.07.2015 Views

Volume 3: General-Purpose and System Instructions - Stanford ...

Volume 3: General-Purpose and System Instructions - Stanford ...

Volume 3: General-Purpose and System Instructions - Stanford ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

AMD64 Technology 24594 Rev. 3.10 February 2005Mnemonic Opcode DescriptionCALL FAR pntr16:169A cdCALL FAR pntr16:329A cpCALL FAR mem16:16 FF /3CALL FAR mem16:32 FF /3Far call direct, with the target specified by a far pointer containedin the instruction. (Invalid in 64-bit mode.)Far call direct, with the target specified by a far pointer containedin the instruction. (Invalid in 64-bit mode.)Far call indirect, with the target specified by a far pointer inmemory.Far call indirect, with the target specified by a far pointer inmemory.Action// See “Pseudocode Definitions” on page 49.CALLF_START:IF (REAL_MODE)CALLF_REAL_OR_VIRTUALELSIF (PROTECTED_MODE)CALLF_PROTECTEDELSE // (VIRTUAL_MODE)CALLF_REAL_OR_VIRTUALCALLF_REAL_OR_VIRTUAL:IF (OPCODE = callf [mem]) // CALLF Indirect{temp_RIP = READ_MEM.z [mem]temp_CS = READ_MEM.w [mem+Z]}ELSE // (OPCODE = callf direct){temp_RIP = z-sized offset specified in the instructionzero-extended to 64 bitstemp_CS = selector specified in the instruction}PUSH.v old_CSPUSH.v next_RIPIF (temp_RIP>CS.limit)EXCEPTION [#GP(0)]CS.sel = temp_CSCS.base = temp_CS SHL 4RIP = temp_RIPEXIT90 CALL (Far)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!