jmp far (保护模式下)

jmp far (保护模式下)

Content #

保护模式下的 far jump 共有三种:

  1. A far jump to a conforming or non-conforming code segment. 若目的段的特权级与当前特权级相同,则与实模式下的far jump没什么区别。若目的段的特权级与当前特权级不同,并且目的段为non-conforming,则产生异常。
  2. A far jump through a call gate. 忽略指令中offset部分。CPU跳转到call gate descriptor指定的段,执行 call gate中指定位移处的指令。不会有栈切换。
  3. A task switch. 忽略指令中offset部分。目的操作数指定了task gate中task的段选择符。 task gate中包括了指向目的task的TSS,会直接切换到对应的task。