美文网首页
[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