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

📄 os_task.asm

📁 ucOS在51单片机上的移植实现
💻 ASM
📖 第 1 页 / 共 4 页
字号:
        RET       ; |196| 
        ; return occurs ; |196| 
	.endfunc	196,000000400h,13


	.sect	".text"
	.global	_OSTaskCreateExt
	.sym	_OSTaskCreateExt,_OSTaskCreateExt, 46, 2, 0
	.func	264

;***************************************************************
;* FUNCTION DEF: _OSTaskCreateExt                              *
;***************************************************************
_OSTaskCreateExt:
;* A     assigned to _task
	.sym	_task,0, 144, 17, 16
	.sym	_p_arg,14, 16, 9, 16
	.sym	_ptos,15, 30, 9, 16
	.sym	_prio,16, 14, 9, 16
	.sym	_id,17, 14, 9, 16
	.sym	_pbos,18, 30, 9, 16
	.sym	_stk_size,20, 15, 9, 32
	.sym	_pext,22, 16, 9, 16
	.sym	_opt,23, 14, 9, 16
	.sym	_task,8, 144, 1, 16
	.sym	_psp,9, 30, 1, 16
	.sym	_err,10, 14, 1, 16
        PSHM      AR1
        FRAME     #-12
        NOP
	.line	10
        STL       A,*SP(8)              ; |273| 
	.line	19
        STM       #63,AR0               ; |282| 
        MVDK      *SP(16),*(AR1)        ; |282| 
        CMPR      2,AR1                 ; |282| 
        BC        L16,NTC               ; |282| 
        ; branch occurs ; |282| 
	.line	20
        BD        L20                   ; |283| 
        NOP
        LD        #42,A                 ; |283| 
        ; branch occurs ; |283| 
L16:    
	.line	23
 ssbx INTM
	.line	24
        MVDK      *SP(16),*(AR1)        ; |287| 
        LD        *AR1(_OSTCBPrioTbl),A ; |287| 
        BC        L19,ANEQ              ; |287| 
        ; branch occurs ; |287| 
	.line	25
        ST        #1,*AR1(_OSTCBPrioTbl) ; |288| 
	.line	27
 rsbx INTM
	.line	29
        DLD       *SP(20),A             ; |292| 
        DST       A,*SP(0)              ; |292| 
        LD        *SP(23),A             ; |292| 
        STL       A,*SP(2)              ; |292| 
        LD        *SP(18),A             ; |292| 
        CALL      #_OS_TaskStkClr       ; |292| 
        ; call occurs [#_OS_TaskStkClr] ; |292| 
	.line	31
        LD        *SP(14),A             ; |294| 
        STL       A,*SP(0)              ; |294| 
        LD        *SP(15),A             ; |294| 
        STL       A,*SP(1)              ; |294| 
        LD        *SP(23),A             ; |294| 
        STL       A,*SP(2)              ; |294| 
        LD        *SP(8),A              ; |294| 
        CALL      #_OSTaskStkInit       ; |294| 
        ; call occurs [#_OSTaskStkInit] ; |294| 
        STL       A,*SP(9)              ; |294| 
	.line	32
        STL       A,*SP(0)              ; |295| 
        LD        *SP(18),A             ; |295| 
        STL       A,*SP(1)              ; |295| 
        LD        *SP(17),A             ; |295| 
        STL       A,*SP(2)              ; |295| 
        DLD       *SP(20),A             ; |295| 
        DST       A,*SP(4)              ; |295| 
        LD        *SP(22),A             ; |295| 
        STL       A,*SP(6)              ; |295| 
        LD        *SP(23),A             ; |295| 
        STL       A,*SP(7)              ; |295| 
        LD        *SP(16),A             ; |295| 
        CALL      #_OS_TCBInit          ; |295| 
        ; call occurs [#_OS_TCBInit] ; |295| 
        STL       A,*SP(10)             ; |295| 
	.line	33
        LD        *SP(10),A             ; |296| 
        BC        L17,ANEQ              ; |296| 
        ; branch occurs ; |296| 
	.line	34
 ssbx INTM
	.line	35
        ADDM      #1,*(_OSTaskCtr)      ; |298| 
	.line	36
 rsbx INTM
	.line	37
        CMPM      *(_OSRunning),#1      ; |300| 
        BC        L18,NTC               ; |300| 
        ; branch occurs ; |300| 
	.line	38
        CALL      #_OS_Sched            ; |301| 
        ; call occurs [#_OS_Sched] ; |301| 
	.line	40
        B         L18                   ; |303| 
        ; branch occurs ; |303| 
L17:    
	.line	41
 ssbx INTM
	.line	42
        MVDK      *SP(16),*(AR1)        ; |305| 
        ST        #0,*AR1(_OSTCBPrioTbl) ; |305| 
	.line	43
 rsbx INTM
L18:    
	.line	45
        BD        L20                   ; |308| 
        NOP
        LD        *SP(10),A             ; |308| 
        ; branch occurs ; |308| 
L19:    
	.line	47
 rsbx INTM
	.line	48
        LD        #40,A                 ; |311| 
L20:    
	.line	49
        FRAME     #12                   ; |312| 
        POPM      AR1                   ; |312| 
        RET       ; |312| 
        ; return occurs ; |312| 
	.endfunc	312,000000400h,13


	.sect	".text"
	.global	_OSTaskDel
	.sym	_OSTaskDel,_OSTaskDel, 46, 2, 0
	.func	351

;***************************************************************
;* FUNCTION DEF: _OSTaskDel                                    *
;***************************************************************
_OSTaskDel:
;* A     assigned to _prio
	.sym	_prio,0, 14, 17, 16
	.sym	_prio,0, 14, 1, 16
	.sym	_pevent,1, 24, 1, 16, _os_event
	.sym	_pnode,2, 24, 1, 16, _os_flag_node
	.sym	_ptcb,3, 24, 1, 16, _os_tcb
	.sym	_y,4, 14, 1, 16
        PSHM      AR1
        FRAME     #-6
        NOP
	.line	2
        STL       A,*SP(0)              ; |352| 
	.line	18
        LD        *(_OSIntNesting),A    ; |368| 
        BC        L21,AEQ               ; |368| 
        ; branch occurs ; |368| 
	.line	19
        BD        L32                   ; |369| 
        NOP
        LD        #63,A                 ; |369| 
        ; branch occurs ; |369| 
L21:    
	.line	22
        CMPM      *SP(0),#63            ; |372| 
        BC        L22,NTC               ; |372| 
        ; branch occurs ; |372| 
	.line	23
        BD        L32                   ; |373| 
        NOP
        LD        #61,A                 ; |373| 
        ; branch occurs ; |373| 
L22:    
	.line	25
        STM       #63,AR0               ; |375| 
        MVDK      *SP(0),*(AR1)         ; |375| 
        CMPR      1,AR1                 ; |375| 
        BC        L23,TC                ; |375| 
        ; branch occurs ; |375| 
        CMPM      *SP(0),#255           ; |375| 
        BC        L23,TC                ; |375| 
        ; branch occurs ; |375| 
	.line	26
        BD        L32                   ; |376| 
        NOP
        LD        #42,A                 ; |376| 
        ; branch occurs ; |376| 
L23:    
	.line	29
 ssbx INTM
	.line	30
        CMPM      *SP(0),#255           ; |380| 
        BC        L24,NTC               ; |380| 
        ; branch occurs ; |380| 
	.line	31
        MVDM      *(_OSTCBCur),AR1      ; |381| 
        NOP
        LD        *AR1(16),A            ; |381| 
        STL       A,*SP(0)              ; |381| 
L24:    
	.line	33
        MVDK      *SP(0),*(AR1)         ; |383| 
        LD        *AR1(_OSTCBPrioTbl),A ; |383| 
        STL       A,*SP(3)              ; |383| 
	.line	34
        LD        *SP(3),A              ; |384| 
        BC        L31,AEQ               ; |384| 
        ; branch occurs ; |384| 
	.line	35
        MVDK      *SP(3),*(AR1)         ; |385| 
        LD        *AR1(18),A            ; |385| 
        STL       A,*SP(4)              ; |385| 
	.line	36
        MVDK      *SP(3),*(AR2)         ; |386| 
        LD        *AR2(19),A            ; |386| 
        MVDK      *SP(4),*(AR1)         ; |386| 
        CMPL      A,A                   ; |386| 
        AND       *AR1(_OSRdyTbl),A     ; |386| 
        STL       A,*AR1(_OSRdyTbl)     ; |386| 
	.line	37
        MVDK      *SP(4),*(AR1)         ; |387| 
        LD        *AR1(_OSRdyTbl),A     ; |387| 
        BC        L25,ANEQ              ; |387| 
        ; branch occurs ; |387| 
	.line	38
        MVDK      *SP(3),*(AR1)         ; |388| 
        LD        *AR1(20),A            ; |388| 
        CMPL      A,A                   ; |388| 
        AND       *(_OSRdyGrp),A        ; |388| 
        STL       A,*(_OSRdyGrp)        ; |388| 
L25:    
	.line	41
        MVDK      *SP(3),*(AR1)         ; |391| 
        LD        *AR1(10),A            ; |391| 
        STL       A,*SP(1)              ; |391| 
	.line	42
        LD        *SP(1),A              ; |392| 
        BC        L26,AEQ               ; |392| 
        ; branch occurs ; |392| 
	.line	43
        LD        *SP(4),A              ; |393| 
        ADD       *SP(1),A              ; |393| 
        MVDK      *SP(3),*(AR2)         ; |393| 
        ADD       #4,A,A                ; |393| 
        STLM      A,AR1                 ; |393| 
        LD        *AR2(19),A            ; |393| 
        CMPL      A,A                   ; |393| 
        AND       *AR1,A                ; |393| 
        STL       A,*AR1                ; |393| 
	.line	44
        LD        *SP(4),16,A           ; |394| 
        ADD       *SP(1),16,A,A         ; |394| 
        STH       A,*(AR1)              ; |394| 
        NOP
        NOP
        LD        *AR1(4),A             ; |394| 
        BC        L26,ANEQ              ; |394| 
        ; branch occurs ; |394| 
	.line	45
        MVDK      *SP(3),*(AR2)         ; |395| 
        MVDK      *SP(1),*(AR1)         ; |395| 
        LD        *AR2(20),A            ; |395| 
        CMPL      A,A                   ; |395| 
        AND       *AR1(1),A             ; |395| 
        STL       A,*AR1(1)             ; |395| 
L26:    
	.line	50
        MVDK      *SP(3),*(AR1)         ; |400| 
        LD        *AR1(12),A            ; |400| 
        STL       A,*SP(2)              ; |400| 
	.line	51
	.line	55
        ST        #0,*AR1(14)           ; |405| 
	.line	56
        MVDK      *SP(3),*(AR1)         ; |406| 
        ST        #0,*AR1(15)           ; |406| 
	.line	57
        MVDM      *(_OSLockNesting),AR1 ; |407| 
        STM       #255,AR0              ; |407| 
        CMPR      1,AR1                 ; |407| 
        BC        L27,NTC               ; |407| 
        ; branch occurs ; |407| 
	.line	58
        ADDM      #1,*(_OSLockNesting)  ; |408| 
L27:    
	.line	60
 rsbx INTM
	.line	61
        CALL      #_OS_Dummy            ; |411| 
        ; call occurs [#_OS_Dummy] ; |411| 
	.line	62
 ssbx INTM
	.line	63
        LD        *(_OSLockNesting),A   ; |413| 
        BC        L28,AEQ               ; |413| 
        ; branch occurs ; |413| 
	.line	64
        ADDM      #-1,*(_OSLockNesting) ; |414| 
L28:    
	.line	66
        LD        *SP(3),A              ; |416| 
        CALL      #_OSTaskDelHook       ; |416| 
        ; call occurs [#_OSTaskDelHook] ; |416| 
	.line	67
        ADDM      #-1,*(_OSTaskCtr)     ; |417| 
	.line	68
        MVDK      *SP(0),*(AR1)         ; |418| 
        ST        #0,*AR1(_OSTCBPrioTbl) ; |418| 
	.line	69
        MVDK      *SP(3),*(AR1)         ; |419| 
        LD        *AR1(9),A             ; |419| 
        BC        L29,ANEQ              ; |419| 
        ; branch occurs ; |419| 
	.line	70
        MVDK      *AR1(8),*(AR1)        ; |420| 
        ST        #0,*AR1(9)            ; |420| 
	.line	71
        MVDK      *SP(3),*(AR1)         ; |421| 
        MVDK      *AR1(8),*(_OSTCBList) ; |421| 
	.line	72
        B         L30                   ; |422| 
        ; branch occurs ; |422| 
L29:    
	.line	73
        LD        *AR1(8),A             ; |423| 
        MVDK      *AR1(9),*(AR1)        ; |423| 
        STL       A,*AR1(8)             ; |423| 
	.line	74
        MVDK      *SP(3),*(AR1)         ; |424| 
        LD        *AR1(9),A             ; |424| 
        MVDK      *AR1(8),*(AR1)        ; |424| 
        STL       A,*AR1(9)             ; |424| 
L30:    
	.line	76
        MVDK      *SP(3),*(AR1)         ; |426| 
        MVKD      *(_OSTCBFreeList),*AR1(8) ; |426| 
	.line	77
        MVDK      *SP(3),*(_OSTCBFreeList) ; |427| 
	.line	79
        MVDK      *SP(3),*(AR1)         ; |429| 
        ST        #63,*AR1(32)          ; |429| 
	.line	80
        MVDK      *SP(3),*(AR1)         ; |430| 
        ST        #0,*AR1(33)           ; |430| 
	.line	82
 rsbx INTM
	.line	83
        CALL      #_OS_Sched            ; |433| 
        ; call occurs [#_OS_Sched] ; |433| 
	.line	84
        BD        L32                   ; |434| 
        NOP
        LD        #0,A                  ; |434| 
        ; branch occurs ; |434| 
L31:    
	.line	86
 rsbx INTM
	.line	87
        LD        #60,A                 ; |437| 
L32:    
	.line	88
        FRAME     #6                    ; |438| 
        POPM      AR1                   ; |438| 
        RET       ; |438| 
        ; return occurs ; |438| 
	.endfunc	438,000000400h,7


	.sect	".text"
	.global	_OSTaskDelReq
	.sym	_OSTaskDelReq,_OSTaskDelReq, 46, 2, 0
	.func	487

;***************************************************************
;* FUNCTION DEF: _OSTaskDelReq                                 *
;***************************************************************
_OSTaskDelReq:
;* A     assigned to _prio
	.sym	_prio,0, 14, 17, 16
	.sym	_prio,0, 14, 1, 16
	.sym	_stat,1, 14, 1, 16
	.sym	_err,2, 14, 1, 16
	.sym	_ptcb,3, 24, 1, 16, _os_tcb
        PSHM      AR1
        FRAME     #-4
        NOP
	.line	2
        STL       A,*SP(0)              ; |488| 
	.line	12
        CMPM      *SP(0),#63            ; |498| 
        BC        L33,NTC               ; |498| 
        ; branch occurs ; |498| 
	.line	13
        BD        L38                   ; |499| 
        NOP
        LD        #61,A                 ; |499| 
        ; branch occurs ; |499| 
L33:    
	.line	15
        STLM      A,AR1                 ; |501| 
        NOP
        STM       #63,AR0               ; |501| 
        CMPR      1,AR1                 ; |501| 
        BC        L34,TC                ; |501| 
        ; branch occurs ; |501| 
	.line	16
        CMPM      *SP(0),#255           ; |502| 
        BC        L34,TC                ; |502| 
        ; branch occurs ; |502| 
	.line	17
        BD        L38                   ; |503| 
        NOP
        LD        #42,A                 ; |503| 
        ; branch occurs ; |503| 
L34:    
	.line	21
        CMPM      *SP(0),#255           ; |507| 
        BC        L35,NTC               ; |507| 
        ; branch occurs ; |507| 

⌨️ 快捷键说明

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