📄 os_cpu_a.asm
字号:
.page
.text
_OSIntCtxSwExe:
.ref _OSTCBHighRdy
.ref _OSTCBCur
.ref _OSPrioHighRdy
.ref _OSPrioCur
.ref _OSIntCtxFlag
.global _OSIntCtxSwExe
MOVW ACC, #0 ; 清零_OSIntCtxFlag,保证下一次切换进行
MOVW @_OSIntCtxFlag, ACC
MOVW DP,#_OSTCBHighRdy ; OSTCBCur = OSTCBHighRdy
MOVL ACC,@_OSTCBHighRdy
MOVW DP,#_OSTCBCur
MOVL @_OSTCBCur,ACC
MOVW DP,#_OSPrioHighRdy ;OSPrioCur = OSPrioHighRdy
MOV AL,@_OSPrioHighRdy
MOVW DP,#_OSPrioCur
MOV @_OSPrioCur,AL
;=================================================================================
MOVW DP,#_OSTCBHighRdy ;SP = OSTCBhighRdy->OSTCBStkPtr
MOVL XAR4,@_OSTCBHighRdy
MOV AL,*+XAR4[0]
MOV @SP,AL
POP RPC ;取出新任务堆栈中的CONTEXT
NASP
; POP XT
; POP AR1H:AR0H
; POP XAR2
; POP XAR3
; POP XAR4
; POP XAR5
; POP XAR6
; POP XAR7
IRET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -