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 2005PUSHAxPUSHADPush All GPRs onto StackPushes the contents of the eAX, eCX, eDX, eBX, eSP (original value), eBP, eSI, <strong>and</strong>eDI general-purpose registers onto the stack in that order. This instruction decrementsthe stack pointer by 16 or 32 depending on oper<strong>and</strong> size.Using the PUSHA or PUSHAD instruction in 64-bit mode generates an invalid-opcodeexception.Mnemonic Opcode DescriptionPUSHA 60PUSHAD 60Push the contents of the AX, CX, DX, BX, original SP, BP, SI, <strong>and</strong>DI registers onto the stack.(Invalid in 64-bit mode.)Push the contents of the EAX, ECX, EDX, EBX, original ESP, EBP,ESI, <strong>and</strong> EDI registers onto the stack.(Invalid in 64-bit mode.)Related <strong>Instructions</strong>POPA, POPADrFLAGS AffectedNoneExceptionsException RealVirtual8086 Protected Cause of ExceptionInvalid opcode, #UD X This instruction was executed in 64-bit mode.Stack, #SS X X X A memory address exceeded the stack segment limit.Page fault, #PF X X A page fault resulted from the execution of the instruction.Alignment check, #AC X X An unaligned memory reference was performed while alignmentchecking was enabled.236 PUSHAx

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

Saved successfully!

Ooh no, something went wrong!