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

答案说:在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
      暂无数据