流沙团
TSS任务段切换
2020-12-24 流沙团


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进行返回)

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容