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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

24594 Rev. 3.10 February 2005 AMD64 TechnologyPUSHFxPUSHFDPUSHFQPush rFLAGS onto StackDecrements the rSP register <strong>and</strong> copies the rFLAGS register (except for the VM <strong>and</strong>RF flags) onto the stack. The instruction clears the VM <strong>and</strong> RF flags in the rFLAGSimage before putting it on the stack.The instruction pushes 2, 4, or 8 bytes, depending on the oper<strong>and</strong> size.In 64-bit mode, this instruction defaults to a 64-bit oper<strong>and</strong> size <strong>and</strong> there is no prefixavailable to encode a 32-bit oper<strong>and</strong> size.In virtual-8086 mode, if system software has set the IOPL field to a value less than 3, ageneral-protection exception occurs if application software attempts to executePUSHFx or POPFx while VME is not enabled or the oper<strong>and</strong> size is not 16-bit.Mnemonic Opcode DescriptionPUSHF 9C Push the FLAGS word onto the stack.PUSHFDAction// See “Pseudocode Definitions” on page 49.PUSHF_START:IF (REAL_MODE)PUSHF_REALELSIF (PROTECTED_MODE)PUSHF_PROTECTEDELSE // (VIRTUAL_MODE)PUSHF_VIRTUAL9CPush the EFLAGS doubleword onto stack. (No prefix encodingthis in 64-bit mode.)PUSHFQ 9C Push the RFLAGS quadword onto stack.PUSHF_REAL:PUSH.v old_RFLAGSEXITPUSHF_PROTECTED:PUSH.v old_RFLAGSEXIT// Pushed with RF <strong>and</strong> VM cleared.// Pushed with RF cleared.PUSHFx 237

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

Saved successfully!

Ooh no, something went wrong!