os_cpu_a.asm

来自「DSP_UCOS_run_in_flash_nonBIOS」· 汇编 代码 · 共 45 行

ASM
45
字号
.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 + =
减小字号Ctrl + -
显示快捷键?