Mark下:
JMP FAR和CALL FAR访问任务段的区别
当使用JMP FAR来实现任务切换时,
TSS结构体中的Previous Task Link的值在任务切换完成之后为0,CPU不会为其赋值;
如果使用CALL FAR来实现任务切换,Previous Task Link的值在任务切换完成之后,CPU会将其填充为原来的TSS段选择子
当使用JMP FAR来实现任务切换时,EFLAGS寄存器中的NT位不变;
当使用CALL FAR来实现任务切换时,EFLAGS寄存器中的NT位就会被置1
(NT位会对iret指令产生影响 NT位如果为0,iret的值从堆栈中取(中断返回);如果NT位为1,会找TSS中的Previous Task Link进行返回)
0则评论给“TSS任务段切换”