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

📄 os_sem.asm

📁 ucOS在51单片机上的移植实现
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        BD        L21                   ; |222| 
        NOP
        LD        *SP(2),A              ; |222| 
        ; branch occurs ; |222| 
L20:    
        MVDK      *SP(6),*(AR1)         ; |222| 
        LDM       AR1,A                 ; |222| 
        BC        L13,AEQ               ; |222| 
        ; branch occurs ; |222| 
        STM       #1,AR0                ; |222| 
        CMPR      0,AR1                 ; |222| 
        BC        L15,TC                ; |222| 
        ; branch occurs ; |222| 
        B         L19                   ; |222| 
        ; branch occurs ; |222| 
L21:    
	.line	73
        FRAME     #4                    ; |224| 
        POPM      AR1                   ; |224| 
        RET       ; |224| 
        ; return occurs ; |224| 
	.endfunc	224,000000400h,5


	.sect	".text"
	.global	_OSSemPend
	.sym	_OSSemPend,_OSSemPend, 32, 2, 0
	.func	258

;***************************************************************
;* FUNCTION DEF: _OSSemPend                                    *
;***************************************************************
_OSSemPend:
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, _os_event
	.sym	_timeout,4, 14, 9, 16
	.sym	_err,5, 30, 9, 16
	.sym	_pevent,0, 24, 1, 16, _os_event
        PSHM      AR1
        FRAME     #-2
        NOP
	.line	2
        STL       A,*SP(0)              ; |259| 
	.line	8
        LD        *(_OSIntNesting),A    ; |265| 
        BC        L22,AEQ               ; |265| 
        ; branch occurs ; |265| 
	.line	9
        MVDK      *SP(5),*(AR1)         ; |266| 
        ST        #2,*AR1               ; |266| 
	.line	10
        B         L27                   ; |267| 
        ; branch occurs ; |267| 
L22:    
	.line	13
        LD        *SP(0),A              ; |270| 
        BC        L23,ANEQ              ; |270| 
        ; branch occurs ; |270| 
	.line	14
        MVDK      *SP(5),*(AR1)         ; |271| 
        ST        #4,*AR1               ; |271| 
	.line	15
        B         L27                   ; |272| 
        ; branch occurs ; |272| 
L23:    
	.line	18
        MVDK      *SP(0),*(AR1)         ; |275| 
        CMPM      *AR1,#3               ; |275| 
        BC        L24,TC                ; |275| 
        ; branch occurs ; |275| 
	.line	19
        MVDK      *SP(5),*(AR1)         ; |276| 
        ST        #1,*AR1               ; |276| 
	.line	20
        B         L27                   ; |277| 
        ; branch occurs ; |277| 
L24:    
	.line	22
 ssbx INTM
	.line	23
        LD        *AR1(2),A             ; |280| 
        BC        L25,AEQ               ; |280| 
        ; branch occurs ; |280| 
	.line	24
        ADDM      #-1,*AR1(2)           ; |281| 
	.line	25
 rsbx INTM
	.line	26
        MVDK      *SP(5),*(AR1)         ; |283| 
        ST        #0,*AR1               ; |283| 
	.line	27
        B         L27                   ; |284| 
        ; branch occurs ; |284| 
L25:    
	.line	30
        MVDM      *(_OSTCBCur),AR1      ; |287| 
        NOP
        ORM       #1,*AR1(15)           ; |287| 
	.line	31
        MVDM      *(_OSTCBCur),AR1      ; |288| 
        LD        *SP(4),A              ; |288| 
        STL       A,*AR1(14)            ; |288| 
	.line	32
        LD        *SP(0),A              ; |289| 
        CALL      #_OS_EventTaskWait    ; |289| 
        ; call occurs [#_OS_EventTaskWait] ; |289| 
	.line	33
 rsbx INTM
	.line	34
        CALL      #_OS_Sched            ; |291| 
        ; call occurs [#_OS_Sched] ; |291| 
	.line	35
 ssbx INTM
	.line	36
        MVDM      *(_OSTCBCur),AR1      ; |293| 
        NOP
        BITF      *AR1(15),#1           ; |293| 
        BC        L26,NTC               ; |293| 
        ; branch occurs ; |293| 
	.line	37
        LD        *SP(0),A              ; |294| 
        CALL      #_OS_EventTO          ; |294| 
        ; call occurs [#_OS_EventTO] ; |294| 
	.line	38
 rsbx INTM
	.line	39
        MVDK      *SP(5),*(AR1)         ; |296| 
        ST        #10,*AR1              ; |296| 
	.line	40
        B         L27                   ; |297| 
        ; branch occurs ; |297| 
L26:    
	.line	42
        ST        #0,*AR1(10)           ; |299| 
	.line	43
 rsbx INTM
	.line	44
        MVDK      *SP(5),*(AR1)         ; |301| 
        ST        #0,*AR1               ; |301| 
	.line	45
L27:    
        FRAME     #2
        POPM      AR1
        RET
        ; return occurs
	.endfunc	302,000000400h,3


	.sect	".text"
	.global	_OSSemPost
	.sym	_OSSemPost,_OSSemPost, 46, 2, 0
	.func	322

;***************************************************************
;* FUNCTION DEF: _OSSemPost                                    *
;***************************************************************
_OSSemPost:
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, _os_event
	.sym	_pevent,2, 24, 1, 16, _os_event
        PSHM      AR1
        FRAME     #-4
        NOP
	.line	2
        STL       A,*SP(2)              ; |323| 
	.line	9
        LD        *SP(2),A              ; |330| 
        BC        L28,ANEQ              ; |330| 
        ; branch occurs ; |330| 
	.line	10
        BD        L32                   ; |331| 
        NOP
        LD        #4,A                  ; |331| 
        ; branch occurs ; |331| 
L28:    
	.line	13
        MVDK      *SP(2),*(AR1)         ; |334| 
        CMPM      *AR1,#3               ; |334| 
        BC        L29,TC                ; |334| 
        ; branch occurs ; |334| 
	.line	14
        BD        L32                   ; |335| 
        NOP
        LD        #1,A                  ; |335| 
        ; branch occurs ; |335| 
L29:    
	.line	16
 ssbx INTM
	.line	17
        LD        *AR1(1),A             ; |338| 
        BC        L30,AEQ               ; |338| 
        ; branch occurs ; |338| 
	.line	18
        ST        #0,*SP(0)             ; |339| 
        ST        #1,*SP(1)             ; |339| 
        CALLD     #_OS_EventTaskRdy     ; |339| 
        NOP
        LDM       AR1,A                 ; |339| 
        ; call occurs [#_OS_EventTaskRdy] ; |339| 
	.line	19
 rsbx INTM
	.line	20
        CALL      #_OS_Sched            ; |341| 
        ; call occurs [#_OS_Sched] ; |341| 
	.line	21
        BD        L32                   ; |342| 
        NOP
        LD        #0,A                  ; |342| 
        ; branch occurs ; |342| 
L30:    
	.line	23
        STM       #65535,AR0            ; |344| 
        MVDK      *AR1(2),*(AR1)        ; |344| 
        CMPR      1,AR1                 ; |344| 
        BC        L31,NTC               ; |344| 
        ; branch occurs ; |344| 
	.line	24
        MVDK      *SP(2),*(AR1)         ; |345| 
        ADDM      #1,*AR1(2)            ; |345| 
	.line	25
 rsbx INTM
	.line	26
        BD        L32                   ; |347| 
        NOP
        LD        #0,A                  ; |347| 
        ; branch occurs ; |347| 
L31:    
	.line	28
 rsbx INTM
	.line	29
        LD        #50,A                 ; |350| 
L32:    
	.line	30
        FRAME     #4                    ; |351| 
        POPM      AR1                   ; |351| 
        RET       ; |351| 
        ; return occurs ; |351| 
	.endfunc	351,000000400h,5


	.sect	".text"
	.global	_OSSemQuery
	.sym	_OSSemQuery,_OSSemQuery, 46, 2, 0
	.func	372

;***************************************************************
;* FUNCTION DEF: _OSSemQuery                                   *
;***************************************************************
_OSSemQuery:
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, _os_event
	.sym	_p_sem_data,5, 24, 9, 16, _os_sem_data
	.sym	_pevent,0, 24, 1, 16, _os_event
	.sym	_psrc,1, 30, 1, 16
	.sym	_pdest,2, 30, 1, 16
        PSHM      AR1
        FRAME     #-3
        NOP
	.line	2
        STL       A,*SP(0)              ; |373| 
	.line	11
        LD        *SP(0),A              ; |382| 
        BC        L33,ANEQ              ; |382| 
        ; branch occurs ; |382| 
	.line	12
        BD        L35                   ; |383| 
        NOP
        LD        #4,A                  ; |383| 
        ; branch occurs ; |383| 
L33:    
	.line	15
        MVDK      *SP(0),*(AR1)         ; |386| 
        CMPM      *AR1,#3               ; |386| 
        BC        L34,TC                ; |386| 
        ; branch occurs ; |386| 
	.line	16
        BD        L35                   ; |387| 
        NOP
        LD        #1,A                  ; |387| 
        ; branch occurs ; |387| 
L34:    
	.line	18
 ssbx INTM
	.line	19
        LD        *AR1(1),A             ; |390| 
        MVDK      *SP(5),*(AR1)         ; |390| 
        STL       A,*AR1(9)             ; |390| 
	.line	20
        LD        #4,A                  ; |391| 
        ADD       *SP(0),A              ; |391| 
        STL       A,*SP(1)              ; |391| 
	.line	21
        LD        *SP(5),A              ; |392| 
        ADD       #1,A                  ; |392| 
        STL       A,*SP(2)              ; |392| 
	.line	23
        MVDK      *SP(1),*(AR1)         ; |394| 
        LD        *AR1+,B               ; |394| 
        MVKD      *(AR1),*SP(1)         ; |394| 
        STLM      A,AR1                 ; |394| 
        NOP
        LDM       AR1,A                 ; |394| 
        ADD       #1,A,A                ; |394| 
        STL       A,*SP(2)              ; |394| 
        STL       B,*AR1                ; |394| 
	.line	27
        MVDK      *SP(1),*(AR1)         ; |398| 
        LD        *AR1+,B               ; |398| 
        MVKD      *(AR1),*SP(1)         ; |398| 
        MVDK      *SP(2),*(AR1)         ; |398| 
        LDM       AR1,A                 ; |398| 
        ADD       #1,A,A                ; |398| 
        STL       A,*SP(2)              ; |398| 
        STL       B,*AR1                ; |398| 
	.line	31
        MVDK      *SP(1),*(AR1)         ; |402| 
        LD        *AR1+,B               ; |402| 
        MVKD      *(AR1),*SP(1)         ; |402| 
        MVDK      *SP(2),*(AR1)         ; |402| 
        LDM       AR1,A                 ; |402| 
        ADD       #1,A,A                ; |402| 
        STL       A,*SP(2)              ; |402| 
        STL       B,*AR1                ; |402| 
	.line	35
        MVDK      *SP(1),*(AR1)         ; |406| 
        LD        *AR1+,B               ; |406| 
        MVKD      *(AR1),*SP(1)         ; |406| 
        MVDK      *SP(2),*(AR1)         ; |406| 
        LDM       AR1,A                 ; |406| 
        ADD       #1,A,A                ; |406| 
        STL       A,*SP(2)              ; |406| 
        STL       B,*AR1                ; |406| 
	.line	39
        MVDK      *SP(1),*(AR1)         ; |410| 
        LD        *AR1+,B               ; |410| 
        MVKD      *(AR1),*SP(1)         ; |410| 
        MVDK      *SP(2),*(AR1)         ; |410| 
        LDM       AR1,A                 ; |410| 
        ADD       #1,A,A                ; |410| 
        STL       A,*SP(2)              ; |410| 
        STL       B,*AR1                ; |410| 
	.line	43
        MVDK      *SP(1),*(AR1)         ; |414| 
        LD        *AR1+,B               ; |414| 
        MVKD      *(AR1),*SP(1)         ; |414| 
        MVDK      *SP(2),*(AR1)         ; |414| 
        LDM       AR1,A                 ; |414| 
        ADD       #1,A,A                ; |414| 
        STL       A,*SP(2)              ; |414| 
        STL       B,*AR1                ; |414| 
	.line	47
        MVDK      *SP(1),*(AR1)         ; |418| 
        LD        *AR1+,B               ; |418| 
        MVKD      *(AR1),*SP(1)         ; |418| 
        MVDK      *SP(2),*(AR1)         ; |418| 
        LDM       AR1,A                 ; |418| 
        ADD       #1,A,A                ; |418| 
        STL       A,*SP(2)              ; |418| 
        STL       B,*AR1                ; |418| 
	.line	51
        MVDK      *SP(1),*(AR2)         ; |422| 
        MVDK      *SP(2),*(AR3)         ; |422| 
        MVDD      *AR2,*AR3             ; |422| 
	.line	53
        MVDK      *SP(0),*(AR2)         ; |424| 
        MAR       *+AR2(#2)             ; |424| 
        MVDK      *SP(5),*(AR3)         ; |424| 
        MVDD      *AR2,*AR3             ; |424| 
	.line	54
 rsbx INTM
	.line	55
        LD        #0,A                  ; |426| 
L35:    
	.line	56
        FRAME     #3                    ; |427| 
        POPM      AR1                   ; |427| 
        RET       ; |427| 
        ; return occurs ; |427| 
	.endfunc	427,000000400h,4


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

⌨️ 快捷键说明

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