⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_core.asm

📁 ucOS在51单片机上的移植实现
💻 ASM
📖 第 1 页 / 共 5 页
字号:
L13:    
	.line	13
        LD        *(_OSIntNesting),A    ; |334| 
        BC        L14,ANEQ              ; |334| 
        ; branch occurs ; |334| 
	.line	14
        LD        *(_OSLockNesting),A   ; |335| 
        BC        L14,ANEQ              ; |335| 
        ; branch occurs ; |335| 
	.line	15
        MVDM      *(_OSRdyGrp),AR1      ; |336| 
        NOP
        MVDK      *AR1(_OSUnMapTbl),*(_OSIntExitY) ; |336| 
	.line	16
        MVDM      *(_OSIntExitY),AR1    ; |337| 
        NOP
        MVDK      *AR1(_OSRdyTbl),*(AR1) ; |337| 
        LD        *AR1(_OSUnMapTbl),A   ; |337| 
        ADD       *(_OSIntExitY),#3,A,A ; |337| 
        STL       A,*(_OSPrioHighRdy)   ; |337| 
	.line	17
        LD        *(_OSPrioHighRdy),A   ; |338| 
        SUB       *(_OSPrioCur),A       ; |338| 
        BC        L14,AEQ               ; |338| 
        ; branch occurs ; |338| 
	.line	18
        MVDM      *(_OSPrioHighRdy),AR1 ; |339| 
        NOP
        MVDK      *AR1(_OSTCBPrioTbl),*(_OSTCBHighRdy) ; |339| 
	.line	20
        MVDM      *(_OSTCBHighRdy),AR1  ; |341| 
        NOP
        DLD       *AR1(22),A            ; |341| 
        ADD       #1,A                  ; |341| 
        DST       A,*AR1(22)            ; |341| 
	.line	22
        DLD       *(_OSCtxSwCtr),A      ; |343| 
        ADD       #1,A                  ; |343| 
        DST       A,*(_OSCtxSwCtr)      ; |343| 
	.line	23
        CALL      #_OSIntCtxSw          ; |344| 
        ; call occurs [#_OSIntCtxSw] ; |344| 
L14:    
	.line	27
 rsbx INTM
	.line	29
L15:    
        POPM      AR1
        RET
        ; return occurs
	.endfunc	350,000000400h,1


	.sect	".text"
	.global	_OSSchedLock
	.sym	_OSSchedLock,_OSSchedLock, 32, 2, 0
	.func	369

;***************************************************************
;* FUNCTION DEF: _OSSchedLock                                  *
;***************************************************************
_OSSchedLock:
        PSHM      AR1
	.line	8
        CMPM      *(_OSRunning),#1      ; |376| 
        BC        L17,NTC               ; |376| 
        ; branch occurs ; |376| 
	.line	9
 ssbx INTM
	.line	10
        MVDM      *(_OSLockNesting),AR1 ; |378| 
        STM       #255,AR0              ; |378| 
        CMPR      1,AR1                 ; |378| 
        BC        L16,NTC               ; |378| 
        ; branch occurs ; |378| 
	.line	11
        ADDM      #1,*(_OSLockNesting)  ; |379| 
L16:    
	.line	13
 rsbx INTM
	.line	15
L17:    
        POPM      AR1
        RET
        ; return occurs
	.endfunc	383,000000400h,1


	.sect	".text"
	.global	_OSSchedUnlock
	.sym	_OSSchedUnlock,_OSSchedUnlock, 32, 2, 0
	.func	403

;***************************************************************
;* FUNCTION DEF: _OSSchedUnlock                                *
;***************************************************************
_OSSchedUnlock:
        FRAME     #-1
	.line	8
        CMPM      *(_OSRunning),#1      ; |410| 
        BC        L21,NTC               ; |410| 
        ; branch occurs ; |410| 
	.line	9
 ssbx INTM
	.line	10
        LD        *(_OSLockNesting),A   ; |412| 
        BC        L20,AEQ               ; |412| 
        ; branch occurs ; |412| 
	.line	11
        ADDM      #-1,*(_OSLockNesting) ; |413| 
	.line	12
        LD        *(_OSLockNesting),A   ; |414| 
        BC        L19,ANEQ              ; |414| 
        ; branch occurs ; |414| 
	.line	13
        LD        *(_OSIntNesting),A    ; |415| 
        BC        L18,ANEQ              ; |415| 
        ; branch occurs ; |415| 
	.line	14
 rsbx INTM
	.line	15
        CALL      #_OS_Sched            ; |417| 
        ; call occurs [#_OS_Sched] ; |417| 
	.line	16
        B         L21                   ; |418| 
        ; branch occurs ; |418| 
L18:    
	.line	17
 rsbx INTM
	.line	19
        B         L21                   ; |421| 
        ; branch occurs ; |421| 
L19:    
	.line	20
 rsbx INTM
	.line	22
        B         L21                   ; |424| 
        ; branch occurs ; |424| 
L20:    
	.line	23
 rsbx INTM
	.line	26
L21:    
        FRAME     #1
        RET
        ; return occurs
	.endfunc	428,000000000h,1


	.sect	".text"
	.global	_OSStart
	.sym	_OSStart,_OSStart, 32, 2, 0
	.func	452

;***************************************************************
;* FUNCTION DEF: _OSStart                                      *
;***************************************************************
_OSStart:
	.sym	_y,0, 14, 1, 16
	.sym	_x,1, 14, 1, 16
        PSHM      AR1
        FRAME     #-2
	.line	7
        LD        *(_OSRunning),A       ; |458| 
        BC        L22,ANEQ              ; |458| 
        ; branch occurs ; |458| 
	.line	8
        MVDM      *(_OSRdyGrp),AR1      ; |459| 
        NOP
        LD        *AR1(_OSUnMapTbl),A   ; |459| 
        STL       A,*SP(0)              ; |459| 
	.line	9
        MVDK      *SP(0),*(AR1)         ; |460| 
        MVDK      *AR1(_OSRdyTbl),*(AR1) ; |460| 
        LD        *AR1(_OSUnMapTbl),A   ; |460| 
        STL       A,*SP(1)              ; |460| 
	.line	10
        ADD       *SP(0),#3,A,A         ; |461| 
        STL       A,*(_OSPrioHighRdy)   ; |461| 
	.line	11
        MVDK      *(_OSPrioHighRdy),*(_OSPrioCur) ; |462| 
	.line	12
        MVDM      *(_OSPrioHighRdy),AR1 ; |463| 
        NOP
        MVDK      *AR1(_OSTCBPrioTbl),*(_OSTCBHighRdy) ; |463| 
	.line	13
        MVDK      *(_OSTCBHighRdy),*(_OSTCBCur) ; |464| 
	.line	14
        CALL      #_OSStartHighRdy      ; |465| 
        ; call occurs [#_OSStartHighRdy] ; |465| 
	.line	16
L22:    
        FRAME     #2
        POPM      AR1
        RET
        ; return occurs
	.endfunc	467,000000400h,3


	.sect	".text"
	.global	_OSStatInit
	.sym	_OSStatInit,_OSStatInit, 32, 2, 0
	.func	490

;***************************************************************
;* FUNCTION DEF: _OSStatInit                                   *
;***************************************************************
_OSStatInit:
        FRAME     #-1
	.line	8
        CALLD     #_OSTimeDly           ; |497| 
        NOP
        LD        #2,A                  ; |497| 
        ; call occurs [#_OSTimeDly] ; |497| 
	.line	9
 ssbx INTM
	.line	10
        LD        #0,A                  ; |499| 
        DST       A,*(_OSIdleCtr)       ; |499| 
	.line	11
 rsbx INTM
	.line	12
        CALLD     #_OSTimeDly           ; |501| 
        NOP
        LD        #2,A                  ; |501| 
        ; call occurs [#_OSTimeDly] ; |501| 
	.line	13
 ssbx INTM
	.line	14
        DLD       *(_OSIdleCtr),A       ; |503| 
        DST       A,*(_OSIdleCtrMax)    ; |503| 
	.line	15
        ST        #1,*(_OSStatRdy)      ; |504| 
	.line	16
 rsbx INTM
	.line	17
        FRAME     #1
        RET
        ; return occurs
	.endfunc	506,000000000h,1


	.sect	".text"
	.global	_OSTimeTick
	.sym	_OSTimeTick,_OSTimeTick, 32, 2, 0
	.func	523

;***************************************************************
;* FUNCTION DEF: _OSTimeTick                                   *
;***************************************************************
_OSTimeTick:
	.sym	_ptcb,0, 24, 1, 16, _os_tcb
	.sym	_step,1, 14, 1, 16
        PSHM      AR1
        FRAME     #-2
	.line	11
        CALL      #_OSTimeTickHook      ; |533| 
        ; call occurs [#_OSTimeTickHook] ; |533| 
	.line	14
 ssbx INTM
	.line	15
        DLD       *(_OSTime),A          ; |537| 
        ADD       #1,A                  ; |537| 
        DST       A,*(_OSTime)          ; |537| 
	.line	16
 rsbx INTM
	.line	18
        CMPM      *(_OSRunning),#1      ; |540| 
        BC        L32,NTC               ; |540| 
        ; branch occurs ; |540| 
	.line	20
        B         L27                   ; |542| 
        ; branch occurs ; |542| 
L23:    
	.line	22
        ST        #1,*SP(1)             ; |544| 
        B         L28                   ; |544| 
        ; branch occurs ; |544| 
L24:    
	.line	26
        ST        #0,*SP(1)             ; |548| 
        B         L28                   ; |548| 
        ; branch occurs ; |548| 
L25:    
	.line	30
        ST        #1,*SP(1)             ; |552| 
	.line	31
        ST        #1,*(_OSTickStepState) ; |553| 
        B         L28                   ; |553| 
        ; branch occurs ; |553| 
L26:    
	.line	35
        ST        #1,*SP(1)             ; |557| 
	.line	36
        ST        #0,*(_OSTickStepState) ; |558| 
        B         L28                   ; |558| 
        ; branch occurs ; |558| 
L27:    
        MVDM      *(_OSTickStepState),AR1 ; |558| 
        LDM       AR1,A                 ; |558| 
        BC        L23,AEQ               ; |558| 
        ; branch occurs ; |558| 
        STM       #1,AR0                ; |558| 
        CMPR      0,AR1                 ; |558| 
        BC        L24,TC                ; |558| 
        ; branch occurs ; |558| 
        STM       #2,AR0                ; |558| 
        CMPR      0,AR1                 ; |558| 
        BC        L25,TC                ; |558| 
        ; branch occurs ; |558| 
        B         L26                   ; |558| 
        ; branch occurs ; |558| 
L28:    
	.line	42
        CMPM      *SP(1),#1             ; |564| 
        BC        L32,NTC               ; |564| 
        ; branch occurs ; |564| 
	.line	43
        MVKD      *(_OSTCBList),*SP(0)  ; |565| 
	.line	44
        MVDK      *SP(0),*(AR1)         ; |566| 
        CMPM      *AR1(16),#63          ; |566| 
        BC        L32,TC                ; |566| 
        ; branch occurs ; |566| 
L29:    
	.line	45
 ssbx INTM
	.line	46
        MVDK      *SP(0),*(AR1)         ; |568| 
        LD        *AR1(14),A            ; |568| 
        BC        L31,AEQ               ; |568| 
        ; branch occurs ; |568| 
	.line	47
        LD        *AR1(14),A            ; |569| 
        SUB       #1,A,A                ; |569| 
        STLM      A,AR2                 ; |569| 
        MVKD      *(AR2),*AR1(14)       ; |569| 
        BANZ      L31,*AR2              ; |569| 
        ; branch occurs ; |569| 
	.line	48
        MVDK      *SP(0),*(AR1)         ; |570| 
        BITF      *AR1(15),#8           ; |570| 
        BC        L30,TC                ; |570| 
        ; branch occurs ; |570| 
	.line	49
        LD        *AR1(20),A            ; |571| 
        OR        *(_OSRdyGrp),A        ; |571| 
        STL       A,*(_OSRdyGrp)        ; |571| 
	.line	50
        MVDK      *SP(0),*(AR2)         ; |572| 
        MVDK      *AR1(18),*(AR1)       ; |572| 
        LD        *AR2(19),A            ; |572| 
        OR        *AR1(_OSRdyTbl),A     ; |572| 
        STL       A,*AR1(_OSRdyTbl)     ; |572| 
	.line	51
        B         L31                   ; |573| 
        ; branch occurs ; |573| 
L30:    
	.line	52
        ST        #1,*AR1(14)           ; |574| 
L31:    
	.line	56
        MVDK      *SP(0),*(AR1)         ; |578| 
        LD        *AR1(8),A             ; |578| 
        STL       A,*SP(0)              ; |578| 
	.line	57
 rsbx INTM
	.line	58
        STLM      A,AR1
        NOP
        NOP
        CMPM      *AR1(16),#63          ; |580| 
        BC        L29,NTC               ; |580| 
        ; branch occurs ; |580| 
	.line	61
L32:    
        FRAME     #2
        POPM      AR1
        RET
        ; return occurs
	.endfunc	583,000000400h,3


	.sect	".text"
	.global	_OSVersion
	.sym	_OSVersion,_OSVersion, 46, 2, 0
	.func	599

;***************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -