ucos-ii任务切换代码分析 30

任务级的任务切换,请您逐行分析,并注明汇编语句的具体意思_OSCTXSWPROCFAR;PUSHA;Savecurrenttask'scontextPUSHES;PUSH... 任务级的任务切换,请您逐行分析,并注明汇编语句的具体意思
_OSCTXSW PROC FAR
;
PUSHA ; Save current task's context
PUSH ES ;
PUSH DS ;
;
MOV AX, SEG _OSTCBCUR ; Reload DS in case it was altered
MOV DS, AX ;
;
LES BX, DWORD PTR DS:_OSTCBCUR ; OSTCBCur->OSTCBStkPtr = SS:SP
MOV ES:[BX+2], SS ;
MOV ES:[BX+0], SP ;
;
CALL FAR PTR _OSTASKSWHOOK ; Call user defined task switch hook
;
MOV AX, WORD PTR DS:_OSTCBHIGHRDY+2 ; OSTCBCur = OSTCBHighRdy
MOV DX, WORD PTR DS:_OSTCBHIGHRDY ;
MOV WORD PTR DS:_OSTCBCUR+2, AX ;
MOV WORD PTR DS:_OSTCBCUR, DX ;
;
MOV AL, BYTE PTR DS:_OSPRIOHIGHRDY ; OSPrioCur = OSPrioHighRdy
MOV BYTE PTR DS:_OSPRIOCUR, AL ;
;
LES BX, DWORD PTR DS:_OSTCBHIGHRDY ; SS:SP = OSTCBHighRdy->OSTCBStkPtr
MOV SS, ES:[BX+2] ;
MOV SP, ES:[BX] ;
;
POP DS ; Load new task's context
POP ES ;
POPA ;
;
IRET ; Return to new task
;
_OSCTXSW ENDP

PAGE ; /*$PAGE*/
解释任务切换是如何把cpu信息存储在任务的堆栈里的,请据此写个简单的任务切换小程序
展开
 我来答
百度网友39c07bb
2010-05-27 · TA获得超过571个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:112万
展开全部
dsfwg
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式