📄 os_intsw.asm
字号:
.page
.text
_OSIntCtxSw:
.ref _OSTCBHighRdy
.ref _OSTCBCur
.ref _OSPrioHighRdy
.ref _OSPrioCur
.global _OSIntCtxSw
;模拟返回中断
;保存当前环境
SUBB SP,#4
MOVW DP,#_OSTCBCur ; OSTCBCur->OSTCBStkPtr = SP
MOVL XAR4,@_OSTCBCur ; |274|
MOV AL,SP
MOV *+XAR4[0],AL ; |274|
;=================================================================================
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -