Lab1中的change1 调用T_SWITCH_TOU中断。从中断返回时,会多pop两位?
匿名2023/07/31 19:52:14提问
    lab1student
232

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