os_mbox.asm

来自「ucOS在51单片机上的移植实现」· 汇编 代码 · 共 947 行 · 第 1/3 页

ASM
947
字号
        BD        L32                   ; |347| 
        NOP
        LD        #0,A                  ; |347| 
        ; branch occurs ; |347| 
L30:    
	.line	26
        LD        *AR1(3),A             ; |349| 
        BC        L31,AEQ               ; |349| 
        ; branch occurs ; |349| 
	.line	27
 rsbx INTM
	.line	28
        BD        L32                   ; |351| 
        NOP
        LD        #20,A                 ; |351| 
        ; branch occurs ; |351| 
L31:    
	.line	30
        LD        *SP(6),A              ; |353| 
        STL       A,*AR1(3)             ; |353| 
	.line	31
 rsbx INTM
	.line	32
        LD        #0,A                  ; |355| 
L32:    
	.line	33
        FRAME     #4                    ; |356| 
        POPM      AR1                   ; |356| 
        RET       ; |356| 
        ; return occurs ; |356| 
	.endfunc	356,000000400h,5


	.sect	".text"
	.global	_OSMboxPostOpt
	.sym	_OSMboxPostOpt,_OSMboxPostOpt, 46, 2, 0
	.func	389

;***************************************************************
;* FUNCTION DEF: _OSMboxPostOpt                                *
;***************************************************************
_OSMboxPostOpt:
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, _os_event
	.sym	_msg,6, 16, 9, 16
	.sym	_opt,7, 14, 9, 16
	.sym	_pevent,2, 24, 1, 16, _os_event
        PSHM      AR1
        FRAME     #-4
        NOP
	.line	2
        STL       A,*SP(2)              ; |390| 
	.line	9
        LD        *SP(2),A              ; |397| 
        BC        L33,ANEQ              ; |397| 
        ; branch occurs ; |397| 
	.line	10
        BD        L41                   ; |398| 
        NOP
        LD        #4,A                  ; |398| 
        ; branch occurs ; |398| 
L33:    
	.line	12
        LD        *SP(6),A              ; |400| 
        BC        L34,ANEQ              ; |400| 
        ; branch occurs ; |400| 
	.line	13
        BD        L41                   ; |401| 
        NOP
        LD        #3,A                  ; |401| 
        ; branch occurs ; |401| 
L34:    
	.line	16
        MVDK      *SP(2),*(AR1)         ; |404| 
        CMPM      *AR1,#1               ; |404| 
        BC        L35,TC                ; |404| 
        ; branch occurs ; |404| 
	.line	17
        BD        L41                   ; |405| 
        NOP
        LD        #1,A                  ; |405| 
        ; branch occurs ; |405| 
L35:    
	.line	19
 ssbx INTM
	.line	20
        LD        *AR1(1),A             ; |408| 
        BC        L39,AEQ               ; |408| 
        ; branch occurs ; |408| 
	.line	21
        BITF      *SP(7),#1             ; |409| 
        BC        L37,NTC               ; |409| 
        ; branch occurs ; |409| 
	.line	22
        LD        *AR1(1),A             ; |410| 
        BC        L38,AEQ               ; |410| 
        ; branch occurs ; |410| 
L36:    
	.line	23
        LD        *SP(6),A              ; |411| 
        ST        #2,*SP(1)             ; |411| 
        STL       A,*SP(0)              ; |411| 
        LD        *SP(2),A              ; |411| 
        CALL      #_OS_EventTaskRdy     ; |411| 
        ; call occurs [#_OS_EventTaskRdy] ; |411| 
	.line	24
        MVDK      *SP(2),*(AR1)         ; |412| 
        LD        *AR1(1),A             ; |412| 
        BC        L36,ANEQ              ; |412| 
        ; branch occurs ; |412| 
	.line	25
        B         L38                   ; |413| 
        ; branch occurs ; |413| 
L37:    
	.line	26
        LD        *SP(6),A              ; |414| 
        ST        #2,*SP(1)             ; |414| 
        STL       A,*SP(0)              ; |414| 
        CALLD     #_OS_EventTaskRdy     ; |414| 
        NOP
        LDM       AR1,A                 ; |414| 
        ; call occurs [#_OS_EventTaskRdy] ; |414| 
L38:    
	.line	28
 rsbx INTM
	.line	29
        CALL      #_OS_Sched            ; |417| 
        ; call occurs [#_OS_Sched] ; |417| 
	.line	30
        BD        L41                   ; |418| 
        NOP
        LD        #0,A                  ; |418| 
        ; branch occurs ; |418| 
L39:    
	.line	32
        LD        *AR1(3),A             ; |420| 
        BC        L40,AEQ               ; |420| 
        ; branch occurs ; |420| 
	.line	33
 rsbx INTM
	.line	34
        BD        L41                   ; |422| 
        NOP
        LD        #20,A                 ; |422| 
        ; branch occurs ; |422| 
L40:    
	.line	36
        LD        *SP(6),A              ; |424| 
        STL       A,*AR1(3)             ; |424| 
	.line	37
 rsbx INTM
	.line	38
        LD        #0,A                  ; |426| 
L41:    
	.line	39
        FRAME     #4                    ; |427| 
        POPM      AR1                   ; |427| 
        RET       ; |427| 
        ; return occurs ; |427| 
	.endfunc	427,000000400h,5


	.sect	".text"
	.global	_OSMboxQuery
	.sym	_OSMboxQuery,_OSMboxQuery, 46, 2, 0
	.func	449

;***************************************************************
;* FUNCTION DEF: _OSMboxQuery                                  *
;***************************************************************
_OSMboxQuery:
;* A     assigned to _pevent
	.sym	_pevent,0, 24, 17, 16, _os_event
	.sym	_p_mbox_data,5, 24, 9, 16, _os_mbox_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)              ; |450| 
	.line	11
        LD        *SP(0),A              ; |459| 
        BC        L42,ANEQ              ; |459| 
        ; branch occurs ; |459| 
	.line	12
        BD        L44                   ; |460| 
        NOP
        LD        #4,A                  ; |460| 
        ; branch occurs ; |460| 
L42:    
	.line	15
        MVDK      *SP(0),*(AR1)         ; |463| 
        CMPM      *AR1,#1               ; |463| 
        BC        L43,TC                ; |463| 
        ; branch occurs ; |463| 
	.line	16
        BD        L44                   ; |464| 
        NOP
        LD        #1,A                  ; |464| 
        ; branch occurs ; |464| 
L43:    
	.line	18
 ssbx INTM
	.line	19
        LD        *AR1(1),A             ; |467| 
        MVDK      *SP(5),*(AR1)         ; |467| 
        STL       A,*AR1(9)             ; |467| 
	.line	20
        LD        #4,A                  ; |468| 
        ADD       *SP(0),A              ; |468| 
        STL       A,*SP(1)              ; |468| 
	.line	21
        LD        *SP(5),A              ; |469| 
        ADD       #1,A                  ; |469| 
        STL       A,*SP(2)              ; |469| 
	.line	24
        MVDK      *SP(1),*(AR1)         ; |472| 
        LD        *AR1+,B               ; |472| 
        MVKD      *(AR1),*SP(1)         ; |472| 
        STLM      A,AR1                 ; |472| 
        NOP
        LDM       AR1,A                 ; |472| 
        ADD       #1,A,A                ; |472| 
        STL       A,*SP(2)              ; |472| 
        STL       B,*AR1                ; |472| 
	.line	28
        MVDK      *SP(1),*(AR1)         ; |476| 
        LD        *AR1+,B               ; |476| 
        MVKD      *(AR1),*SP(1)         ; |476| 
        MVDK      *SP(2),*(AR1)         ; |476| 
        LDM       AR1,A                 ; |476| 
        ADD       #1,A,A                ; |476| 
        STL       A,*SP(2)              ; |476| 
        STL       B,*AR1                ; |476| 
	.line	32
        MVDK      *SP(1),*(AR1)         ; |480| 
        LD        *AR1+,B               ; |480| 
        MVKD      *(AR1),*SP(1)         ; |480| 
        MVDK      *SP(2),*(AR1)         ; |480| 
        LDM       AR1,A                 ; |480| 
        ADD       #1,A,A                ; |480| 
        STL       A,*SP(2)              ; |480| 
        STL       B,*AR1                ; |480| 
	.line	36
        MVDK      *SP(1),*(AR1)         ; |484| 
        LD        *AR1+,B               ; |484| 
        MVKD      *(AR1),*SP(1)         ; |484| 
        MVDK      *SP(2),*(AR1)         ; |484| 
        LDM       AR1,A                 ; |484| 
        ADD       #1,A,A                ; |484| 
        STL       A,*SP(2)              ; |484| 
        STL       B,*AR1                ; |484| 
	.line	40
        MVDK      *SP(1),*(AR1)         ; |488| 
        LD        *AR1+,B               ; |488| 
        MVKD      *(AR1),*SP(1)         ; |488| 
        MVDK      *SP(2),*(AR1)         ; |488| 
        LDM       AR1,A                 ; |488| 
        ADD       #1,A,A                ; |488| 
        STL       A,*SP(2)              ; |488| 
        STL       B,*AR1                ; |488| 
	.line	44
        MVDK      *SP(1),*(AR1)         ; |492| 
        LD        *AR1+,B               ; |492| 
        MVKD      *(AR1),*SP(1)         ; |492| 
        MVDK      *SP(2),*(AR1)         ; |492| 
        LDM       AR1,A                 ; |492| 
        ADD       #1,A,A                ; |492| 
        STL       A,*SP(2)              ; |492| 
        STL       B,*AR1                ; |492| 
	.line	48
        MVDK      *SP(1),*(AR1)         ; |496| 
        LD        *AR1+,B               ; |496| 
        MVKD      *(AR1),*SP(1)         ; |496| 
        MVDK      *SP(2),*(AR1)         ; |496| 
        LDM       AR1,A                 ; |496| 
        ADD       #1,A,A                ; |496| 
        STL       A,*SP(2)              ; |496| 
        STL       B,*AR1                ; |496| 
	.line	52
        MVDK      *SP(1),*(AR2)         ; |500| 
        MVDK      *SP(2),*(AR3)         ; |500| 
        MVDD      *AR2,*AR3             ; |500| 
	.line	54
        MVDK      *SP(0),*(AR2)         ; |502| 
        MAR       *+AR2(#3)             ; |502| 
        MVDK      *SP(5),*(AR3)         ; |502| 
        MVDD      *AR2,*AR3             ; |502| 
	.line	55
 rsbx INTM
	.line	56
        LD        #0,A                  ; |504| 
L44:    
	.line	57
        FRAME     #3                    ; |505| 
        POPM      AR1                   ; |505| 
        RET       ; |505| 
        ; return occurs ; |505| 
	.endfunc	505,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 + =
减小字号Ctrl + -
显示快捷键?