美文网首页
[040][x86汇编语言]第十五章 任务切换 B位 、NT位、

[040][x86汇编语言]第十五章 任务切换 B位 、NT位、

作者: AkuRinbu | 来源:发表于2018-06-28 04:11 被阅读19次

学习笔记

《x86汇编语言:从实模式到保护模式》
https://www.jianshu.com/p/d481cb547e9f

EFLGAS标志寄存器的格式

EFLAGS标志寄存器的格式.png

不同任务切换对B位(TSS描述符)、NT位(EFLAGS寄存器)和任务链接域(TSS内容)的影响

不同任务切换对B位(TSS描述符)、NT位(EFLAGS寄存器)和任务链接域(TSS内容)的影响
  • call指令发起的切换是嵌套的,通过iret指令返回到前一个任务
假设任务1是整个系统的第一个任务

当任务1开始执行时,
  其TSS描述的B位是1,
  EFLAGS寄存器的NT位是0,表示不嵌套于其他任务。

使用call指令,从 任务1 切换到 [新]任务2 时,
  任务1,仍旧为“忙”,B位=1,NT位不变;
  [新]任务2,也变成“忙”,B位=1,NT位=1(表示嵌套与任务1中),
         并且 任务2 的TSS指针域(任务域链接)指向任务1。

通过 iret指令 返回到 任务1
  [新]任务2,B位=0 ,NT位=0,TSS指针域不变;
  • 使用jmp指令,不会形成任务的嵌套
使用jmp指令,从任务1 切换到 [新]任务2
任务1,B位=0(表示不忙),NT位(不变);
[新]任务2,B位=1(忙),NT位(从新任务的TSS中加载);

任务嵌套 (CALL指令)

任务相关参考图

TSS(Task State Segment)任务状态段的结构
与任务相关的各部分逻辑示意图
https://www.jianshu.com/p/adb70daa6d2c

任务嵌套中TSS的作用

  • TSS用于保存旧任务的各种状态数据(如TSS格式图所示);
  • TSS描述符已经加载至GDT
  • TSS本身已加载至内存
任务嵌套示意图 处理器 TSS.png

相关文章

网友评论

      本文标题:[040][x86汇编语言]第十五章 任务切换 B位 、NT位、

      本文链接:https://www.haomeiwen.com/subject/pnuwyftx.html