【问题标题】:exception after `call far TSS descriptor:offset``call far TSS descriptor:offset`之后的异常
【发布时间】:2013-06-03 06:00:03
【问题描述】:

我有一个大问题困扰了我一个月! 我正在编写汇编代码以通过 call far [es:esi + TCB.addr_tss] 在 bochs 中进行任务切换,如图 1.

现在我进入了新任务,所以我在 bochs 中输入“s”,如图 2:

目前看来一切正常,通用寄存器 CS、SS,控制寄存器 CR0、CR3,LDT 也正常。但是你知道如果我再迈一步会发生什么吗?见下图:

怎么了?! 我不知道。我检查了 DPL,段限制,似乎没有错。 哦,上帝保佑我……

【问题讨论】:

  • 你能上传完整的可运行代码吗?
  • 准备是多余的,TSS上下文切换后的代码只是一个mov eax, eax

标签: assembly operating-system x86 kernel mbr


【解决方案1】:

这是一个很大的讽刺,我忘记设置 PDE 的访问权限。

【讨论】:

    猜你喜欢
    • 2018-11-10
    • 2019-01-20
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 2011-02-01
    相关资源
    最近更新 更多