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

📄 os_task.asm

📁 ucOS在51单片机上的移植实现
💻 ASM
📖 第 1 页 / 共 4 页
字号:
        ; branch occurs ; |749| 
	.line	15
        BD        L64                   ; |750| 
        NOP
        LD        #42,A                 ; |750| 
        ; branch occurs ; |750| 
L57:    
	.line	19
        LD        #0,A                  ; |754| 
        MVDK      *SP(10),*(AR1)        ; |754| 
        DST       A,*AR1                ; |754| 
	.line	20
        MVDK      *SP(10),*(AR1)        ; |755| 
        LD        #0,A                  ; |755| 
        DST       A,*AR1(2)             ; |755| 
	.line	21
 ssbx INTM
	.line	22
        CMPM      *SP(0),#255           ; |757| 
        BC        L58,NTC               ; |757| 
        ; branch occurs ; |757| 
	.line	23
        MVDM      *(_OSTCBCur),AR1      ; |758| 
        NOP
        LD        *AR1(16),A            ; |758| 
        STL       A,*SP(0)              ; |758| 
L58:    
	.line	25
        MVDK      *SP(0),*(AR1)         ; |760| 
        LD        *AR1(_OSTCBPrioTbl),A ; |760| 
        STL       A,*SP(1)              ; |760| 
	.line	26
        LD        *SP(1),A              ; |761| 
        BC        L59,ANEQ              ; |761| 
        ; branch occurs ; |761| 
	.line	27
 rsbx INTM
	.line	28
        BD        L64                   ; |763| 
        NOP
        LD        #11,A                 ; |763| 
        ; branch occurs ; |763| 
L59:    
	.line	30
        CMPM      *SP(1),#1             ; |765| 
        BC        L60,NTC               ; |765| 
        ; branch occurs ; |765| 
	.line	31
 rsbx INTM
	.line	32
        BD        L64                   ; |767| 
        NOP
        LD        #11,A                 ; |767| 
        ; branch occurs ; |767| 
L60:    
	.line	34
        MVDK      *SP(1),*(AR1)         ; |769| 
        BITF      *AR1(6),#1            ; |769| 
        BC        L61,TC                ; |769| 
        ; branch occurs ; |769| 
	.line	35
 rsbx INTM
	.line	36
        BD        L64                   ; |771| 
        NOP
        LD        #130,A                ; |771| 
        ; branch occurs ; |771| 
L61:    
	.line	38
        LD        #0,A                  ; |773| 
        DST       A,*SP(4)              ; |773| 
	.line	39
        DLD       *AR1(4),A             ; |774| 
        DST       A,*SP(6)              ; |774| 
	.line	40
        LD        *AR1(2),A             ; |775| 
        STL       A,*SP(2)              ; |775| 
	.line	41
 rsbx INTM
	.line	43
        STLM      A,AR1
        NOP
        NOP
        MVDK      *AR1+,*(AR2)          ; |778| 
        BANZD     L63,*AR2              ; |778| 
        MVKD      *(AR1),*SP(2)         ; |778| 
        ; branch occurs ; |778| 
L62:    
	.line	44
        DLD       *SP(4),A              ; |779| 
        ADD       #1,A                  ; |779| 
        DST       A,*SP(4)              ; |779| 
	.line	45
        MVDK      *SP(2),*(AR1)         ; |780| 
        LDU       *AR1+,A
        BCD       L62,AEQ               ; |780| 
        MVKD      *(AR1),*SP(2)         ; |780| 
        ; branch occurs ; |780| 
L63:    
	.line	51
        DLD       *SP(4),A              ; |786| 
        MVDK      *SP(10),*(AR1)        ; |786| 
        DST       A,*AR1                ; |786| 
	.line	52
        DLD       *SP(4),A              ; |787| 
        MVDK      *SP(10),*(AR1)        ; |787| 
        DRSUB     *SP(6),A              ; |787| 
        DST       A,*AR1(2)             ; |787| 
	.line	53
        LD        #0,A                  ; |788| 
L64:    
	.line	54
        FRAME     #8                    ; |789| 
        POPM      AR1                   ; |789| 
        RET       ; |789| 
        ; return occurs ; |789| 
	.endfunc	789,000000400h,9


	.sect	".text"
	.global	_OSTaskSuspend
	.sym	_OSTaskSuspend,_OSTaskSuspend, 46, 2, 0
	.func	815

;***************************************************************
;* FUNCTION DEF: _OSTaskSuspend                                *
;***************************************************************
_OSTaskSuspend:
;* A     assigned to _prio
	.sym	_prio,0, 14, 17, 16
	.sym	_prio,0, 14, 1, 16
	.sym	_self,1, 14, 1, 16
	.sym	_ptcb,2, 24, 1, 16, _os_tcb
	.sym	_y,3, 14, 1, 16
        PSHM      AR1
        FRAME     #-4
        NOP
	.line	2
        STL       A,*SP(0)              ; |816| 
	.line	12
        CMPM      *SP(0),#63            ; |826| 
        BC        L65,NTC               ; |826| 
        ; branch occurs ; |826| 
	.line	13
        BD        L73                   ; |827| 
        NOP
        LD        #91,A                 ; |827| 
        ; branch occurs ; |827| 
L65:    
	.line	15
        STLM      A,AR1                 ; |829| 
        NOP
        STM       #63,AR0               ; |829| 
        CMPR      1,AR1                 ; |829| 
        BC        L66,TC                ; |829| 
        ; branch occurs ; |829| 
	.line	16
        CMPM      *SP(0),#255           ; |830| 
        BC        L66,TC                ; |830| 
        ; branch occurs ; |830| 
	.line	17
        BD        L73                   ; |831| 
        NOP
        LD        #42,A                 ; |831| 
        ; branch occurs ; |831| 
L66:    
	.line	21
 ssbx INTM
	.line	22
        CMPM      *SP(0),#255           ; |836| 
        BC        L67,NTC               ; |836| 
        ; branch occurs ; |836| 
	.line	23
        MVDM      *(_OSTCBCur),AR1      ; |837| 
        NOP
        LD        *AR1(16),A            ; |837| 
        STL       A,*SP(0)              ; |837| 
	.line	24
        ST        #1,*SP(1)             ; |838| 
	.line	25
        B         L69                   ; |839| 
        ; branch occurs ; |839| 
L67:    
        MVDM      *(_OSTCBCur),AR1      ; |839| 
        LD        *SP(0),A              ; |839| 
        SUB       *AR1(16),A            ; |839| 
        BC        L68,ANEQ              ; |839| 
        ; branch occurs ; |839| 
	.line	26
        ST        #1,*SP(1)             ; |840| 
	.line	27
        B         L69                   ; |841| 
        ; branch occurs ; |841| 
L68:    
	.line	28
        ST        #0,*SP(1)             ; |842| 
L69:    
	.line	30
        MVDK      *SP(0),*(AR1)         ; |844| 
        LD        *AR1(_OSTCBPrioTbl),A ; |844| 
        STL       A,*SP(2)              ; |844| 
	.line	31
        LD        *SP(2),A              ; |845| 
        BC        L70,ANEQ              ; |845| 
        ; branch occurs ; |845| 
	.line	32
 rsbx INTM
	.line	33
        BD        L73                   ; |847| 
        NOP
        LD        #90,A                 ; |847| 
        ; branch occurs ; |847| 
L70:    
	.line	35
        MVDK      *SP(2),*(AR1)         ; |849| 
        LD        *AR1(18),A            ; |849| 
        STL       A,*SP(3)              ; |849| 
	.line	36
        MVDK      *SP(2),*(AR2)         ; |850| 
        LD        *AR2(19),A            ; |850| 
        MVDK      *SP(3),*(AR1)         ; |850| 
        CMPL      A,A                   ; |850| 
        AND       *AR1(_OSRdyTbl),A     ; |850| 
        STL       A,*AR1(_OSRdyTbl)     ; |850| 
	.line	37
        MVDK      *SP(3),*(AR1)         ; |851| 
        LD        *AR1(_OSRdyTbl),A     ; |851| 
        BC        L71,ANEQ              ; |851| 
        ; branch occurs ; |851| 
	.line	38
        MVDK      *SP(2),*(AR1)         ; |852| 
        LD        *AR1(20),A            ; |852| 
        CMPL      A,A                   ; |852| 
        AND       *(_OSRdyGrp),A        ; |852| 
        STL       A,*(_OSRdyGrp)        ; |852| 
L71:    
	.line	40
        MVDK      *SP(2),*(AR1)         ; |854| 
        ORM       #8,*AR1(15)           ; |854| 
	.line	41
 rsbx INTM
	.line	42
        CMPM      *SP(1),#1             ; |856| 
        BC        L72,NTC               ; |856| 
        ; branch occurs ; |856| 
	.line	43
        CALL      #_OS_Sched            ; |857| 
        ; call occurs [#_OS_Sched] ; |857| 
L72:    
	.line	45
        LD        #0,A                  ; |859| 
L73:    
	.line	46
        FRAME     #4                    ; |860| 
        POPM      AR1                   ; |860| 
        RET       ; |860| 
        ; return occurs ; |860| 
	.endfunc	860,000000400h,5


	.sect	".text"
	.global	_OSTaskQuery
	.sym	_OSTaskQuery,_OSTaskQuery, 46, 2, 0
	.func	881

;***************************************************************
;* FUNCTION DEF: _OSTaskQuery                                  *
;***************************************************************
_OSTaskQuery:
;* A     assigned to _prio
	.sym	_prio,0, 14, 17, 16
	.sym	_p_task_data,6, 24, 9, 16, _os_tcb
	.sym	_prio,2, 14, 1, 16
	.sym	_ptcb,3, 24, 1, 16, _os_tcb
        PSHM      AR1
        FRAME     #-4
        NOP
	.line	2
        STL       A,*SP(2)              ; |882| 
	.line	10
        STLM      A,AR1                 ; |890| 
        NOP
        STM       #63,AR0               ; |890| 
        CMPR      2,AR1                 ; |890| 
        BC        L74,NTC               ; |890| 
        ; branch occurs ; |890| 
	.line	11
        CMPM      *SP(2),#255           ; |891| 
        BC        L74,TC                ; |891| 
        ; branch occurs ; |891| 
	.line	12
        BD        L77                   ; |892| 
        NOP
        LD        #42,A                 ; |892| 
        ; branch occurs ; |892| 
L74:    
	.line	16
 ssbx INTM
	.line	17
        CMPM      *SP(2),#255           ; |897| 
        BC        L75,NTC               ; |897| 
        ; branch occurs ; |897| 
	.line	18
        MVDM      *(_OSTCBCur),AR1      ; |898| 
        NOP
        LD        *AR1(16),A            ; |898| 
        STL       A,*SP(2)              ; |898| 
L75:    
	.line	20
        MVDK      *SP(2),*(AR1)         ; |900| 
        LD        *AR1(_OSTCBPrioTbl),A ; |900| 
        STL       A,*SP(3)              ; |900| 
	.line	21
        LD        *SP(3),A              ; |901| 
        BC        L76,ANEQ              ; |901| 
        ; branch occurs ; |901| 
	.line	22
 rsbx INTM
	.line	23
        BD        L77                   ; |903| 
        NOP
        LD        #41,A                 ; |903| 
        ; branch occurs ; |903| 
L76:    
	.line	26
        LD        *SP(3),A              ; |906| 
        ST        #64,*SP(1)            ; |906| 
        STL       A,*SP(0)              ; |906| 
        LD        *SP(6),A              ; |906| 
        CALL      #_OS_MemCopy          ; |906| 
        ; call occurs [#_OS_MemCopy] ; |906| 
	.line	27
 rsbx INTM
	.line	28
        LD        #0,A                  ; |908| 
L77:    
	.line	29
        FRAME     #4                    ; |909| 
        POPM      AR1                   ; |909| 
        RET       ; |909| 
        ; return occurs ; |909| 
	.endfunc	909,000000400h,5


	.sect	".text"
	.global	_OS_TaskStkClr
	.sym	_OS_TaskStkClr,_OS_TaskStkClr, 32, 2, 0
	.func	935

;***************************************************************
;* FUNCTION DEF: _OS_TaskStkClr                                *
;***************************************************************
_OS_TaskStkClr:
;* A     assigned to _pbos
	.sym	_pbos,0, 30, 17, 16
	.sym	_size,4, 15, 9, 32
	.sym	_opt,6, 14, 9, 16
	.sym	_pbos,0, 30, 1, 16
        PSHM      AR1
        FRAME     #-2
        NOP
	.line	2
        STL       A,*SP(0)              ; |936| 
	.line	3
        BITF      *SP(6),#1             ; |937| 
        BC        L79,NTC               ; |937| 
        ; branch occurs ; |937| 
	.line	4
        BITF      *SP(6),#2             ; |938| 
        BC        L79,NTC               ; |938| 
        ; branch occurs ; |938| 
	.line	6
        DLD       *SP(4),A              ; |940| 
        BC        L79,AEQ               ; |940| 
        ; branch occurs ; |940| 
L78:    
	.line	7
        DLD       *SP(4),A              ; |941| 
        SUB       #1,A                  ; |941| 
        DST       A,*SP(4)              ; |941| 
	.line	8
        MVDK      *SP(0),*(AR1)         ; |942| 
        LDM       AR1,A                 ; |942| 
        ADD       #1,A,A                ; |942| 
        STL       A,*SP(0)              ; |942| 
        ST        #0,*AR1               ; |942| 
	.line	9
        DLD       *SP(4),A              ; |943| 
        BC        L78,ANEQ              ; |943| 
        ; branch occurs ; |943| 
	.line	18
L79:    
        FRAME     #2
        POPM      AR1
        RET
        ; return occurs
	.endfunc	952,000000400h,3


;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_OS_Dummy
	.global	_OS_MemCopy
	.global	_OS_Sched
	.global	_OS_StrCopy
	.global	_OS_StrLen
	.global	_OS_TCBInit
	.global	_OSTaskDelHook
	.global	_OSTaskStkInit
	.global	_OSMapTbl
	.global	_OSTCBPrioTbl
	.global	_OSTCBList
	.global	_OSTCBFreeList
	.global	_OSTCBCur
	.global	_OSTaskCtr
	.global	_OSRunning
	.global	_OSRdyTbl
	.global	_OSRdyGrp
	.global	_OSLockNesting
	.global	_OSIntNesting

⌨️ 快捷键说明

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