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

📄 os_core.asm

📁 该代码采用c5400dsp的汇编语言和c语言实现ucos操作系统
💻 ASM
📖 第 1 页 / 共 3 页
字号:
        POPM      AR1
        RET
        ; return occurs
	.endfunc	132,000000400h,8


	.sect	".text"
	.global	_OSEventTaskWait
	.sym	_OSEventTaskWait,_OSEventTaskWait, 32, 2, 0
	.func	150

;***************************************************************
;* FUNCTION DEF: _OSEventTaskWait                              *
;***************************************************************
_OSEventTaskWait:
	.line	2
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, $$fake0
	.sym	_pevent,0, 24, 1, 16, $$fake0
        PSHM      AR1
        FRAME     #-1
        NOP
        STL       A,*SP(0)
	.line	3
        MVDM      *(_OSTCBCur),AR1
        NOP
        STL       A,*AR1(3)
	.line	4
        MVDM      *(_OSTCBCur),AR2
        MVDM      *(_OSTCBCur),AR1
        LD        *AR2(10),A
        MVDK      *AR1(9),*(AR1)
        CMPL      A,A                   ; |153| 
        AND       *AR1(_OSRdyTbl),A     ; |153| 
        STLM      A,AR2
        MVKD      *(AR2),*AR1(_OSRdyTbl)
        BANZ      L3,*AR2               ; |153| 
        ; branch occurs ; |153| 
	.line	5
        MVDM      *(_OSTCBCur),AR1
        NOP
        LD        *AR1(11),A
        CMPL      A,A                   ; |154| 
        AND       *(_OSRdyGrp),A        ; |154| 
        STL       A,*(_OSRdyGrp)
L3:    
	.line	7
        MVDM      *(_OSTCBCur),AR1
        NOP
        LD        *AR1(9),A
        MVDM      *(_OSTCBCur),AR2
        ADD       *SP(0),A              ; |156| 
        ADD       #1,A,A                ; |156| 
        STLM      A,AR1
        LD        *AR2(10),A
        OR        *AR1,A                ; |156| 
        STL       A,*AR1
	.line	8
        MVDM      *(_OSTCBCur),AR2
        MVDK      *SP(0),*(AR1)
        LD        *AR2(11),A
        OR        *AR1(5),A             ; |157| 
        STL       A,*AR1(5)
	.line	9
        FRAME     #1
        POPM      AR1
        RET
        ; return occurs
	.endfunc	158,000000400h,2


	.sect	".text"
	.global	_OSEventTO
	.sym	_OSEventTO,_OSEventTO, 32, 2, 0
	.func	176

;***************************************************************
;* FUNCTION DEF: _OSEventTO                                    *
;***************************************************************
_OSEventTO:
	.line	2
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, $$fake0
	.sym	_pevent,0, 24, 1, 16, $$fake0
        PSHM      AR1
        FRAME     #-1
        NOP
        STL       A,*SP(0)
	.line	3
        MVDM      *(_OSTCBCur),AR1
        NOP
        LD        *AR1(9),A
        ADD       *SP(0),A              ; |178| 
        ADD       #1,A,A                ; |178| 
        STLM      A,AR2
        LD        *AR1(10),A
        CMPL      A,A                   ; |178| 
        AND       *AR2,A                ; |178| 
        STLM      A,AR1
        NOP
        NOP
        BANZD     L4,*AR1               ; |178| 
        MVKD      *(AR1),*AR2
        ; branch occurs ; |178| 
	.line	4
        MVDM      *(_OSTCBCur),AR2
        MVDK      *SP(0),*(AR1)
        LD        *AR2(11),A
        CMPL      A,A                   ; |179| 
        AND       *AR1(5),A             ; |179| 
        STL       A,*AR1(5)
L4:    
	.line	6
        MVDM      *(_OSTCBCur),AR1
        NOP
        ST        #0,*AR1(6)            ; |181| 
	.line	7
        MVDM      *(_OSTCBCur),AR1
        NOP
        ST        #0,*AR1(3)            ; |182| 
	.line	8
        FRAME     #1
        POPM      AR1
        RET
        ; return occurs
	.endfunc	183,000000400h,2


	.sect	".text"
	.global	_OSEventWaitListInit
	.sym	_OSEventWaitListInit,_OSEventWaitListInit, 32, 2, 0
	.func	200

;***************************************************************
;* FUNCTION DEF: _OSEventWaitListInit                          *
;***************************************************************
_OSEventWaitListInit:
	.line	2
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, $$fake0
	.sym	_pevent,0, 24, 1, 16, $$fake0
	.sym	_i,1, 14, 1, 16
        PSHM      AR1
        FRAME     #-2
        NOP
        STL       A,*SP(0)
	.line	6
        STLM      A,AR1
        NOP
        NOP
        ST        #0,*AR1(5)            ; |205| 
	.line	7
        STM       #2,AR0
        ST        #0,*SP(1)             ; |206| 
        MVDK      *SP(1),*(AR1)
        CMPR      1,AR1                 ; |206| 
        BC        L6,NTC                ; |206| 
        ; branch occurs ; |206| 
L5:    
	.line	8
        LD        *SP(1),A
        ADD       *SP(0),A              ; |207| 
        STLM      A,AR1
        NOP
        NOP
        ST        #0,*AR1(1)            ; |207| 
	.line	9
        ADDM      #1,*SP(1)             ; |208| 
        MVDK      *SP(1),*(AR1)
        CMPR      1,AR1                 ; |208| 
        BC        L5,TC                 ; |208| 
        ; branch occurs ; |208| 
L6:    
	.line	10
        FRAME     #2
        POPM      AR1
        RET
        ; return occurs
	.endfunc	209,000000400h,3


	.sect	".text"
	.global	_OSInit
	.sym	_OSInit,_OSInit, 32, 2, 0
	.func	225

;***************************************************************
;* FUNCTION DEF: _OSInit                                       *
;***************************************************************
_OSInit:
	.line	2
	.sym	_i,4, 14, 1, 16
        PSHM      AR1
        FRAME     #-6
	.line	6
        LD        #0,A
        DST       A,*(_OSTime)          ; |230| 
	.line	7
        ST        #0,*(_OSIntNesting)   ; |231| 
	.line	8
        ST        #0,*(_OSLockNesting)  ; |232| 
	.line	10
        ST        #0,*(_OSTaskCtr)      ; |234| 
	.line	12
        ST        #0,*(_OSRunning)      ; |236| 
	.line	13
        LD        #0,A
        DST       A,*(_OSIdleCtr)       ; |237| 
	.line	19
        LD        #0,A
        DST       A,*(_OSCtxSwCtr)      ; |243| 
	.line	20
        ST        #0,*(_OSRdyGrp)       ; |244| 
	.line	21
        STM       #2,AR0
        ST        #0,*SP(4)             ; |245| 
        MVDK      *SP(4),*(AR1)
        CMPR      1,AR1                 ; |245| 
        BC        L8,NTC                ; |245| 
        ; branch occurs ; |245| 
L7:    
	.line	22
        MVDK      *SP(4),*(AR1)
        ST        #0,*AR1(_OSRdyTbl)    ; |246| 
	.line	23
        ADDM      #1,*SP(4)             ; |247| 
        MVDK      *SP(4),*(AR1)
        CMPR      1,AR1                 ; |247| 
        BC        L7,TC                 ; |247| 
        ; branch occurs ; |247| 
L8:    
	.line	25
        ST        #0,*(_OSPrioCur)      ; |249| 
	.line	26
        ST        #0,*(_OSPrioHighRdy)  ; |250| 
	.line	27
        ST        #0,*(_OSTCBHighRdy)   ; |251| 
	.line	28
        ST        #0,*(_OSTCBCur)       ; |252| 
	.line	29
        ST        #0,*(_OSTCBList)      ; |253| 
	.line	30
        ST        #0,*SP(4)             ; |254| 
        STM       #13,AR0
        MVDK      *SP(4),*(AR1)
        CMPR      1,AR1                 ; |254| 
        BC        L10,NTC               ; |254| 
        ; branch occurs ; |254| 
L9:    
	.line	31
        MVDK      *SP(4),*(AR1)
        ST        #0,*AR1(_OSTCBPrioTbl) ; |255| 
	.line	32
        ADDM      #1,*SP(4)             ; |256| 
        MVDK      *SP(4),*(AR1)
        CMPR      1,AR1                 ; |256| 
        BC        L9,TC                 ; |256| 
        ; branch occurs ; |256| 
L10:    
	.line	33
        ST        #0,*SP(4)             ; |257| 
        STM       #11,AR0
        MVDK      *SP(4),*(AR1)
        CMPR      1,AR1                 ; |257| 
        BC        L12,NTC               ; |257| 
        ; branch occurs ; |257| 
L11:    
	.line	34
        LD        *SP(4),A
        STM       #12,T
        LD        #_OSTCBTbl,B
        ADD       #1,A
        MAC       *(AL), B              ; |258| 
        MPY       *SP(4),#12,A          ; |258| 
        STLM      A,AR1
        NOP
        NOP
        STL       B,*AR1(_OSTCBTbl+1)
	.line	35
        ADDM      #1,*SP(4)             ; |259| 
        MVDK      *SP(4),*(AR1)
        CMPR      1,AR1                 ; |259| 
        BC        L11,TC                ; |259| 
        ; branch occurs ; |259| 
L12:    
	.line	36
        ST        #0,*(_OSTCBTbl+133)   ; |260| 
	.line	37
        ST        #_OSTCBTbl,*(_OSTCBFreeList) ; |261| 
	.line	40
        ST        #0,*SP(4)             ; |264| 
        LD        *SP(4),A              ; |264| 
        BC        L14,ANEQ              ; |264| 
        ; branch occurs ; |264| 
L13:    
	.line	41
        LD        *SP(4),B
        LD        #_OSEventTbl,A
        STM       #6,T
        ADD       #1,B
        MAC       *(BL), A              ; |265| 
        MPY       *SP(4),#6,B           ; |265| 
        STLM      B,AR1
        NOP
        NOP
        STL       A,*AR1(_OSEventTbl)
	.line	42
        ADDM      #1,*SP(4)             ; |266| 
        LD        *SP(4),A              ; |266| 
        BC        L13,AEQ               ; |266| 
        ; branch occurs ; |266| 
L14:    
	.line	43
        ST        #0,*(_OSEventTbl+6)   ; |267| 
	.line	44
        ST        #_OSEventTbl,*(_OSEventFreeList) ; |268| 
	.line	48
        CALL      #_OSQInit             ; |272| 
        ; call occurs [#_OSQInit] ; |272| 
	.line	67
        ST        #0,*SP(0)             ; |291| 
        ST        #_OSTaskIdleStk+511,*SP(1) ; |291| 
        ST        #12,*SP(2)            ; |291| 
        CALLD     #_OSTaskCreate        ; |291| 
        LD        #_OSTaskIdle,A
        ; call occurs [#_OSTaskCreate] ; |291| 
	.line	122
        FRAME     #6
        POPM      AR1
        RET
        ; return occurs
	.endfunc	346,000000400h,7


	.sect	".text"
	.global	_OSIntEnter
	.sym	_OSIntEnter,_OSIntEnter, 32, 2, 0
	.func	371

;***************************************************************
;* FUNCTION DEF: _OSIntEnter                                   *
;***************************************************************
_OSIntEnter:
	.line	2
	.line	3
 ssbx INTM
	.line	4
        ADDM      #1,*(_OSIntNesting)   ; |374| 
	.line	5
 rsbx INTM
	.line	6
        RET
        ; return occurs
	.endfunc	376,000000000h,0


	.sect	".text"
	.global	_OSIntExit
	.sym	_OSIntExit,_OSIntExit, 32, 2, 0
	.func	397

;***************************************************************
;* FUNCTION DEF: _OSIntExit                                    *
;***************************************************************
_OSIntExit:
	.line	2
        PSHM      AR1
	.line	3
 ssbx INTM
	.line	4
        LD        *(_OSIntNesting),A
        SUB       #1,A,A                ; |400| 
        STL       A,*(_OSIntNesting)
        LDM       AL,A                  ; |400| 
        OR        *(_OSLockNesting),A   ; |400| 
        BC        L15,ANEQ              ; |400| 
        ; branch occurs ; |400| 
	.line	5
        MVDM      *(_OSRdyGrp),AR1
        NOP
        MVDK      *AR1(_OSUnMapTbl),*(_OSIntExitY) ; |401| 
	.line	6
        MVDM      *(_OSIntExitY),AR1
        NOP
        MVDK      *AR1(_OSRdyTbl),*(AR1)
        LD        *AR1(_OSUnMapTbl),A
        ADD       *(_OSIntExitY),#3,A,A ; |402| 
        STL       A,*(_OSPrioHighRdy)
	.line	7
        LD        *(_OSPrioHighRdy),A   ; |403| 
        SUB       *(_OSPrioCur),A       ; |403| 
        BC        L15,AEQ               ; |403| 
        ; branch occurs ; |403| 
	.line	8
        MVDM      *(_OSPrioHighRdy),AR1
        NOP
        MVDK      *AR1(_OSTCBPrioTbl),*(_OSTCBHighRdy) ; |404| 
	.line	9
        DLD       *(_OSCtxSwCtr),A      ; |405| 
        ADD       #1,A                  ; |405| 
        DST       A,*(_OSCtxSwCtr)      ; |405| 
	.line	10
        CALL      #_OSIntCtxSw          ; |406| 
        ; call occurs [#_OSIntCtxSw] ; |406| 
L15:    
	.line	13
 rsbx INTM
	.line	14
        POPM      AR1
        RET
        ; return occurs
	.endfunc	410,000000400h,1


	.sect	".text"
	.global	_OSSched
	.sym	_OSSched,_OSSched, 32, 2, 0
	.func	429

;***************************************************************
;* FUNCTION DEF: _OSSched                                      *
;***************************************************************
_OSSched:
	.line	2
	.sym	_y,0, 14, 1, 16
        PSHM      AR1
        FRAME     #-1
	.line	6
 ssbx INTM
	.line	7
        LD        *(_OSIntNesting),A
        OR        *(_OSLockNesting),A   ; |435| 
        STLM      A,AR1
        NOP
        NOP
        BANZ      L16,*AR1              ; |435| 
        ; branch occurs ; |435| 
	.line	8
        MVDM      *(_OSRdyGrp),AR1
        NOP
        LD        *AR1(_OSUnMapTbl),A
        STL       A,*SP(0)
	.line	9
        MVDK      *SP(0),*(AR1)
        MVDK      *AR1(_OSRdyTbl),*(AR1)
        LD        *AR1(_OSUnMapTbl),A
        ADD       *SP(0),#3,A,A         ; |437| 
        STL       A,*(_OSPrioHighRdy)
	.line	10
        LD        *(_OSPrioHighRdy),A   ; |438| 
        SUB       *(_OSPrioCur),A       ; |438| 
        BC        L16,AEQ               ; |438| 
        ; branch occurs ; |438| 
	.line	11
        MVDM      *(_OSPrioHighRdy),AR1
        NOP
        MVDK      *AR1(_OSTCBPrioTbl),*(_OSTCBHighRdy) ; |439| 
	.line	12
        DLD       *(_OSCtxSwCtr),A      ; |440| 
        ADD       #1,A                  ; |440| 
        DST       A,*(_OSCtxSwCtr)      ; |440| 
	.line	13
 INTR #2
L16:    
	.line	16
 rsbx INTM
	.line	17
        FRAME     #1
        POPM      AR1
        RET
        ; return occurs
	.endfunc	445,000000400h,2


⌨️ 快捷键说明

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