os_sw.asm
来自「ucos2.52在2812上的移植」· 汇编 代码 · 共 40 行
ASM
40 行
.page
.text
_OSCtxSw:
.ref _OSTCBHighRdy
.ref _OSTCBCur
.ref _OSPrioHighRdy
.ref _OSPrioCur
.global _OSCtxSw
PUSH RPC ;必须入栈
MOVW DP,#_OSTCBCur ; OSTCBCur->OSTCBStkPtr = SP
MOVL XAR4,@_OSTCBCur
MOV AL,SP
MOV *+XAR4[0],AL
;=================================================================================
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
IRET
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?