learningOS开源操作系统社区
  • 首页
  • 训练营
  • 明星学员
  • 共建单位
  • 项目实习
  • 问答论坛
登录
    Copyright © 2024 opencamp.ai All rights reserved.
    Lab1中的change1 调用T_SWITCH_TOU中断。从中断返回时,会多pop两位?
    匿名2023/07/31 19:52:14提问
      lab1student
    432

    答案说:在lab1_switch_to_user中,调用T_SWITCH_TOU中断。 注意从中断返回时,会多pop两位,并用这两位的值更新ss,sp,损坏堆栈。

    所以用了

    asm volatile (
    "sub $0x8, %%esp \n"
    "int %0 \n"
    "movl %%ebp, %%esp"
    :
    : "i"(T_SWITCH_TOU)
    );

    为什么我没有"sub $0x8, %%esp \n"这一句也能全过。

    回答(0)
    即可发布评论
      推荐问答
        Simple Empty
        暂无数据