AMD手冊(cè):24593 3.28 March 2017
嵌套返回到64位模式過(guò)程。在長(zhǎng)模式下,改變特權(quán)級(jí)別的遠(yuǎn)程調(diào)用會(huì)導(dǎo)致SS寄存器加載一個(gè)空選擇符(這與長(zhǎng)模式中的中斷所采取的操作相同)。如果被調(diào)用的過(guò)程執(zhí)行另一個(gè)遠(yuǎn)程調(diào)用到更高特權(quán)的過(guò)程或被中斷,則將空SS選擇器壓入堆棧幀,并將另一個(gè)空選擇器加載到SS寄存器中。以這種方式使用空選擇器可以使處理器正確處理嵌套在64位模式過(guò)程和中斷處理程序中的返回。
通常情況下,將空選擇器彈出到SS寄存器的RET會(huì)導(dǎo)致發(fā)生通用保護(hù)異常(#GP)。但是,在長(zhǎng)模式下,空選擇器用作表示嵌套中斷處理程序或其他特權(quán)軟件在64位模式下存在的標(biāo)志。長(zhǎng)模式允許RET在以下條件下從堆棧中將空選擇器彈出到SS中:
?目標(biāo)模式是64位模式。
?目標(biāo)CPL小于3。
在這種情況下,處理器不加載SS描述符,并且空選擇器被加載到SS中而不引起#GP異常。