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

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

scs.stanford.edu
from scs.stanford.edu More from this publisher
13.07.2015 Views

AMD64 Technology 24594 Rev. 3.10 February 2005ExceptionsVirtualException Real 8086 Protected Cause of ExceptionInvalid opcode, #UD X X X The far CALL indirect opcode (FF /3) had a register operand.Invalid TSS, #TS(selector)XXXXXXXThe far CALL direct opcode (9A) was executed in 64-bit mode.As part of a stack switch, the target stack segment selector or rSP inthe TSS was beyond the TSS limit.As part of a stack switch, the target stack segment selector in the TSSwas a null selector.As part of a stack switch, the target stack selector’s TI bit was set, butLDT selector was a null selector.As part of a stack switch, the target stack segment selector in the TSSwas beyond the limit of the GDT or LDT descriptor table.As part of a stack switch, the target stack segment selector in the TSScontained a RPL that was not equal to its DPL.As part of a stack switch, the target stack segment selector in the TSScontained a DPL that was not equal to the CPL of the code segmentselector.Segment not present,#NP (selector)XXAs part of a stack switch, the target stack segment selector in the TSSwas not a writable segment.The accessed code segment, call gate, task gate, or TSS was notpresent.Stack, #SS X X X A memory address exceeded the stack segment limit or was noncanonical,and no stack switch occurred.Stack, #SS(selector)XAfter a stack switch, a memory access exceeded the stack segmentlimit or was non-canonical.XAs part of a stack switch, the SS register was loaded with a non-nullsegment selector and the segment was marked not present.General protection,#GPXXXA memory address exceeded a data segment limit or was non-canonical.XXXThe target offset exceeded the code segment limit or was non-canonical.XA null data segment was used to reference memory.94 CALL (Far)

24594 Rev. 3.10 February 2005 AMD64 TechnologyExceptionGeneral protection,#GP(selector)RealVirtual8086 Protected Cause of ExceptionXXThe target code segment selector was a null selector.A code, call gate, task gate, or TSS descriptor exceeded the descriptortable limit.XXXXXXXXXA segment selector’s TI bit was set but the LDT selector was a nullselector.The segment descriptor specified by the instruction was not a codesegment, task gate, call gate or available TSS in legacy mode, or nota 64-bit code segment or a 64-bit call gate in long mode.The RPL of the non-conforming code segment selector specified bythe instruction was greater than the CPL, or its DPL was not equal tothe CPL.The DPL of the conforming code segment descriptor specified by theinstruction was greater than the CPL.The DPL of the callgate, taskgate, or TSS descriptor specified by theinstruction was less than the CPL, or less than its own RPL.The segment selector specified by the call gate or task gate was a nullselector.The segment descriptor specified by the call gate was not a code segmentin legacy mode, or not a 64-bit code segment in long mode.The DPL of the segment descriptor specified by the call gate wasgreater than the CPL.The 64-bit call gate’s extended attribute bits were not zero.X The TSS descriptor was found in the LDT.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.CALL (Far) 95

AMD64 Technology 24594 Rev. 3.10 February 2005ExceptionsVirtualException Real 8086 Protected Cause of ExceptionInvalid opcode, #UD X X X The far CALL indirect opcode (FF /3) had a register oper<strong>and</strong>.Invalid TSS, #TS(selector)XXXXXXXThe far CALL direct opcode (9A) was executed in 64-bit mode.As part of a stack switch, the target stack segment selector or rSP inthe TSS was beyond the TSS limit.As part of a stack switch, the target stack segment selector in the TSSwas a null selector.As part of a stack switch, the target stack selector’s TI bit was set, butLDT selector was a null selector.As part of a stack switch, the target stack segment selector in the TSSwas beyond the limit of the GDT or LDT descriptor table.As part of a stack switch, the target stack segment selector in the TSScontained a RPL that was not equal to its DPL.As part of a stack switch, the target stack segment selector in the TSScontained a DPL that was not equal to the CPL of the code segmentselector.Segment not present,#NP (selector)XXAs part of a stack switch, the target stack segment selector in the TSSwas not a writable segment.The accessed code segment, call gate, task gate, or TSS was notpresent.Stack, #SS X X X A memory address exceeded the stack segment limit or was noncanonical,<strong>and</strong> no stack switch occurred.Stack, #SS(selector)XAfter a stack switch, a memory access exceeded the stack segmentlimit or was non-canonical.XAs part of a stack switch, the SS register was loaded with a non-nullsegment selector <strong>and</strong> the segment was marked not present.<strong>General</strong> protection,#GPXXXA memory address exceeded a data segment limit or was non-canonical.XXXThe target offset exceeded the code segment limit or was non-canonical.XA null data segment was used to reference memory.94 CALL (Far)

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

Saved successfully!

Ooh no, something went wrong!