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

📄 os_q.asm

📁 ucOS在51单片机上的移植实现
💻 ASM
📖 第 1 页 / 共 4 页
字号:
        ST        #4,*SP(1)             ; |604| 
        STL       A,*SP(0)              ; |604| 
        LD        *SP(2),A              ; |604| 
        CALL      #_OS_EventTaskRdy     ; |604| 
        ; call occurs [#_OS_EventTaskRdy] ; |604| 
	.line	25
        MVDK      *SP(2),*(AR1)         ; |605| 
        LD        *AR1(1),A             ; |605| 
        BC        L50,ANEQ              ; |605| 
        ; branch occurs ; |605| 
	.line	26
        B         L52                   ; |606| 
        ; branch occurs ; |606| 
L51:    
	.line	27
        LD        *SP(6),A              ; |607| 
        ST        #4,*SP(1)             ; |607| 
        STL       A,*SP(0)              ; |607| 
        CALLD     #_OS_EventTaskRdy     ; |607| 
        NOP
        LDM       AR1,A                 ; |607| 
        ; call occurs [#_OS_EventTaskRdy] ; |607| 
L52:    
	.line	29
 rsbx INTM
	.line	30
        CALL      #_OS_Sched            ; |610| 
        ; call occurs [#_OS_Sched] ; |610| 
	.line	31
        BD        L58                   ; |611| 
        NOP
        LD        #0,A                  ; |611| 
        ; branch occurs ; |611| 
L53:    
	.line	33
        LD        *AR1(3),A             ; |613| 
        STL       A,*SP(3)              ; |613| 
	.line	34
        STLM      A,AR1
        NOP
        NOP
        MVDK      *AR1(5),*(AR0)        ; |614| 
        MVDK      *AR1(6),*(AR1)        ; |614| 
        CMPR      1,AR1                 ; |614| 
        BC        L54,TC                ; |614| 
        ; branch occurs ; |614| 
	.line	35
 rsbx INTM
	.line	36
        BD        L58                   ; |616| 
        NOP
        LD        #30,A                 ; |616| 
        ; branch occurs ; |616| 
L54:    
	.line	38
        BITF      *SP(7),#2             ; |618| 
        BC        L56,NTC               ; |618| 
        ; branch occurs ; |618| 
	.line	39
        STLM      A,AR2
        NOP
        STLM      A,AR1
        LD        *AR2(4),A             ; |619| 
        SUB       *AR1(1),A             ; |619| 
        BC        L55,ANEQ              ; |619| 
        ; branch occurs ; |619| 
	.line	40
        LD        *AR1(2),A             ; |620| 
        STL       A,*AR1(4)             ; |620| 
L55:    
	.line	42
        MVDK      *SP(3),*(AR1)         ; |622| 
        ADDM      #-1,*AR1(4)           ; |622| 
	.line	43
        MVDK      *SP(3),*(AR1)         ; |623| 
        LD        *SP(6),A              ; |623| 
        MVDK      *AR1(4),*(AR1)        ; |623| 
        STL       A,*AR1                ; |623| 
	.line	44
        B         L57                   ; |624| 
        ; branch occurs ; |624| 
L56:    
	.line	45
        STLM      A,AR1
        NOP
        NOP
        MVDK      *AR1(3),*(AR2)        ; |625| 
        LDM       AR2,A                 ; |625| 
        ADD       #1,A,A                ; |625| 
        STL       A,*AR1(3)             ; |625| 
        LD        *SP(6),A              ; |625| 
        STL       A,*AR2                ; |625| 
	.line	46
        MVDK      *SP(3),*(AR1)         ; |626| 
        MVMM      AR1,AR2               ; |626| 
        LD        *AR2(3),A             ; |626| 
        SUB       *AR1(2),A             ; |626| 
        BC        L57,ANEQ              ; |626| 
        ; branch occurs ; |626| 
	.line	47
        LD        *AR1(1),A             ; |627| 
        STL       A,*AR1(3)             ; |627| 
L57:    
	.line	50
        MVDK      *SP(3),*(AR1)         ; |630| 
        ADDM      #1,*AR1(6)            ; |630| 
	.line	51
 rsbx INTM
	.line	52
        LD        #0,A                  ; |632| 
L58:    
	.line	53
        FRAME     #4                    ; |633| 
        POPM      AR1                   ; |633| 
        RET       ; |633| 
        ; return occurs ; |633| 
	.endfunc	633,000000400h,5


	.sect	".text"
	.global	_OSQQuery
	.sym	_OSQQuery,_OSQQuery, 46, 2, 0
	.func	654

;***************************************************************
;* FUNCTION DEF: _OSQQuery                                     *
;***************************************************************
_OSQQuery:
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, _os_event
	.sym	_p_q_data,6, 24, 9, 16, _os_q_data
	.sym	_pevent,0, 24, 1, 16, _os_event
	.sym	_pq,1, 24, 1, 16, _os_q
	.sym	_psrc,2, 30, 1, 16
	.sym	_pdest,3, 30, 1, 16
        PSHM      AR1
        FRAME     #-4
        NOP
	.line	2
        STL       A,*SP(0)              ; |655| 
	.line	12
        LD        *SP(0),A              ; |665| 
        BC        L59,ANEQ              ; |665| 
        ; branch occurs ; |665| 
	.line	13
        BD        L63                   ; |666| 
        NOP
        LD        #4,A                  ; |666| 
        ; branch occurs ; |666| 
L59:    
	.line	16
        MVDK      *SP(0),*(AR1)         ; |669| 
        CMPM      *AR1,#2               ; |669| 
        BC        L60,TC                ; |669| 
        ; branch occurs ; |669| 
	.line	17
        BD        L63                   ; |670| 
        NOP
        LD        #1,A                  ; |670| 
        ; branch occurs ; |670| 
L60:    
	.line	19
 ssbx INTM
	.line	20
        LD        *AR1(1),A             ; |673| 
        MVDK      *SP(6),*(AR1)         ; |673| 
        STL       A,*AR1(11)            ; |673| 
	.line	21
        LD        #4,A                  ; |674| 
        ADD       *SP(0),A              ; |674| 
        STL       A,*SP(2)              ; |674| 
	.line	22
        LD        #3,A                  ; |675| 
        ADD       *SP(6),A              ; |675| 
        STL       A,*SP(3)              ; |675| 
	.line	24
        MVDK      *SP(2),*(AR1)         ; |677| 
        LD        *AR1+,B               ; |677| 
        MVKD      *(AR1),*SP(2)         ; |677| 
        STLM      A,AR1                 ; |677| 
        NOP
        LDM       AR1,A                 ; |677| 
        ADD       #1,A,A                ; |677| 
        STL       A,*SP(3)              ; |677| 
        STL       B,*AR1                ; |677| 
	.line	28
        MVDK      *SP(2),*(AR1)         ; |681| 
        LD        *AR1+,B               ; |681| 
        MVKD      *(AR1),*SP(2)         ; |681| 
        MVDK      *SP(3),*(AR1)         ; |681| 
        LDM       AR1,A                 ; |681| 
        ADD       #1,A,A                ; |681| 
        STL       A,*SP(3)              ; |681| 
        STL       B,*AR1                ; |681| 
	.line	32
        MVDK      *SP(2),*(AR1)         ; |685| 
        LD        *AR1+,B               ; |685| 
        MVKD      *(AR1),*SP(2)         ; |685| 
        MVDK      *SP(3),*(AR1)         ; |685| 
        LDM       AR1,A                 ; |685| 
        ADD       #1,A,A                ; |685| 
        STL       A,*SP(3)              ; |685| 
        STL       B,*AR1                ; |685| 
	.line	36
        MVDK      *SP(2),*(AR1)         ; |689| 
        LD        *AR1+,B               ; |689| 
        MVKD      *(AR1),*SP(2)         ; |689| 
        MVDK      *SP(3),*(AR1)         ; |689| 
        LDM       AR1,A                 ; |689| 
        ADD       #1,A,A                ; |689| 
        STL       A,*SP(3)              ; |689| 
        STL       B,*AR1                ; |689| 
	.line	40
        MVDK      *SP(2),*(AR1)         ; |693| 
        LD        *AR1+,B               ; |693| 
        MVKD      *(AR1),*SP(2)         ; |693| 
        MVDK      *SP(3),*(AR1)         ; |693| 
        LDM       AR1,A                 ; |693| 
        ADD       #1,A,A                ; |693| 
        STL       A,*SP(3)              ; |693| 
        STL       B,*AR1                ; |693| 
	.line	44
        MVDK      *SP(2),*(AR1)         ; |697| 
        LD        *AR1+,B               ; |697| 
        MVKD      *(AR1),*SP(2)         ; |697| 
        MVDK      *SP(3),*(AR1)         ; |697| 
        LDM       AR1,A                 ; |697| 
        ADD       #1,A,A                ; |697| 
        STL       A,*SP(3)              ; |697| 
        STL       B,*AR1                ; |697| 
	.line	48
        MVDK      *SP(2),*(AR1)         ; |701| 
        LD        *AR1+,B               ; |701| 
        MVKD      *(AR1),*SP(2)         ; |701| 
        MVDK      *SP(3),*(AR1)         ; |701| 
        LDM       AR1,A                 ; |701| 
        ADD       #1,A,A                ; |701| 
        STL       A,*SP(3)              ; |701| 
        STL       B,*AR1                ; |701| 
	.line	52
        MVDK      *SP(3),*(AR2)         ; |705| 
        MVDK      *SP(2),*(AR3)         ; |705| 
        MVDD      *AR3,*AR2             ; |705| 
	.line	54
        MVDK      *SP(0),*(AR1)         ; |707| 
        LD        *AR1(3),A             ; |707| 
        STL       A,*SP(1)              ; |707| 
	.line	55
        STLM      A,AR1
        NOP
        NOP
        LD        *AR1(6),A             ; |708| 
        BC        L61,AEQ               ; |708| 
        ; branch occurs ; |708| 
	.line	56
        MVDK      *AR1(4),*(AR3)        ; |709| 
        MVDK      *SP(6),*(AR2)         ; |709| 
        MVDD      *AR3,*AR2             ; |709| 
	.line	57
        B         L62                   ; |710| 
        ; branch occurs ; |710| 
L61:    
	.line	58
        MVDK      *SP(6),*(AR1)         ; |711| 
        ST        #0,*AR1               ; |711| 
L62:    
	.line	60
        MVDK      *SP(1),*(AR1)         ; |713| 
        LD        *AR1(6),A             ; |713| 
        MVDK      *SP(6),*(AR1)         ; |713| 
        STL       A,*AR1(1)             ; |713| 
	.line	61
        MVDK      *SP(1),*(AR1)         ; |714| 
        LD        *AR1(5),A             ; |714| 
        MVDK      *SP(6),*(AR1)         ; |714| 
        STL       A,*AR1(2)             ; |714| 
	.line	62
 rsbx INTM
	.line	63
        LD        #0,A                  ; |716| 
L63:    
	.line	64
        FRAME     #4                    ; |717| 
        POPM      AR1                   ; |717| 
        RET       ; |717| 
        ; return occurs ; |717| 
	.endfunc	717,000000400h,5


	.sect	".text"
	.global	_OS_QInit
	.sym	_OS_QInit,_OS_QInit, 32, 2, 0
	.func	736

;***************************************************************
;* FUNCTION DEF: _OS_QInit                                     *
;***************************************************************
_OS_QInit:
	.sym	_i,2, 14, 1, 16
	.sym	_pq1,3, 24, 1, 16, _os_q
	.sym	_pq2,4, 24, 1, 16, _os_q
        PSHM      AR1
        FRAME     #-6
        NOP
	.line	14
        ST        #28,*SP(0)            ; |749| 
        CALLD     #_OS_MemClr           ; |749| 
        LD        #_OSQTbl,A            ; |749| 
        ; call occurs [#_OS_MemClr] ; |749| 
	.line	15
        ST        #_OSQTbl,*SP(3)       ; |750| 
	.line	16
        ST        #_OSQTbl+7,*SP(4)     ; |751| 
	.line	17
        ST        #0,*SP(2)             ; |752| 
        STM       #3,AR0                ; |752| 
        MVDK      *SP(2),*(AR1)         ; |752| 
        CMPR      1,AR1                 ; |752| 
        BC        L65,NTC               ; |752| 
        ; branch occurs ; |752| 
L64:    
	.line	18
        LD        *SP(4),A              ; |753| 
        MVDK      *SP(3),*(AR1)         ; |753| 
        STL       A,*AR1                ; |753| 
	.line	19
        ADDM      #7,*SP(3)             ; |754| 
	.line	20
        ADDM      #7,*SP(4)             ; |755| 
	.line	21
        ADDM      #1,*SP(2)             ; |756| 
        STM       #3,AR0                ; |756| 
        MVDK      *SP(2),*(AR1)         ; |756| 
        CMPR      1,AR1                 ; |756| 
        BC        L64,TC                ; |756| 
        ; branch occurs ; |756| 
L65:    
	.line	22
        MVDK      *SP(3),*(AR1)         ; |757| 
        ST        #0,*AR1               ; |757| 
	.line	23
        ST        #_OSQTbl,*(_OSQFreeList) ; |758| 
	.line	25
        FRAME     #6
        POPM      AR1
        RET
        ; return occurs
	.endfunc	760,000000400h,7


;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_OS_EventTaskRdy
	.global	_OS_EventTaskWait
	.global	_OS_EventTO
	.global	_OS_EventWaitListInit
	.global	_OS_MemClr
	.global	_OS_Sched
	.global	_OSQTbl
	.global	_OSQFreeList
	.global	_OSTCBCur
	.global	_OSIntNesting
	.global	_OSEventFreeList

⌨️ 快捷键说明

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