| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4012 人关注过本帖
标题:请教一个问题,关于任务切换的eip
取消只看楼主 加入收藏
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
结帖率:100%
收藏
 问题点数:0 回复次数:0 
请教一个问题,关于任务切换的eip
假设GDT什么的都是没有问题的,并且使用堆栈来保存现场(不适用TSS结构),使用时钟中断来进行时间片轮转任务切换
------------------            ----------------
  task1     eip           ret   task2
          ----------------------
          timmerInt + taskSwitch
时钟中断到来后进入taskSwitch要花一点时间。
我的问题是,图中eip在taskSwitch阶段要怎么取得?
我的做法是:
.eip:
    mov ebx, .eip            ; get the current eip
    push [eax], ebx              ; save the current eip to some where
但是这样做的话,下一次任务切换从some where取出eip以后运行还是在这儿,会陷入死循环?
真正的eip是图中时钟中断的地方,而不是我的做法(在下面一条线的某一个点上),请问这个eip是怎么取得的?
求各位嵌入式、操作系统高手指点迷津~~~
搜索更多相关主题的帖子: current where 
2016-11-15 22:48
快速回复:请教一个问题,关于任务切换的eip
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038522 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved