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

📄 ucos_ii.asm

📁 ucos在2812上的移植,采用的版本为V2.0
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.line	20
        MOV       @_OSRdyGrp,#0         ; |244| 
	.line	21
        MOV       *-SP[10],#0           ; |245| 
        MOV       AL,*-SP[10]           ; |245| 
        CMPB      AL,#2                 ; |245| 
        B         L8,HIS                ; |245| 
        ; branch occurs ; |245| 
L7:    
	.line	22
        MOVZ      AR0,*-SP[10]          ; |246| 
        MOVL      XAR4,#_OSRdyTbl       ; |246| 
        MOV       *+XAR4[AR0],#0        ; |246| 
	.line	23
        INC       *-SP[10]              ; |247| 
        MOV       AL,*-SP[10]           ; |247| 
        CMPB      AL,#2                 ; |247| 
        B         L7,LO                 ; |247| 
        ; branch occurs ; |247| 
L8:    
	.line	25
        MOVW      DP,#_OSPrioCur
        MOV       @_OSPrioCur,#0        ; |249| 
	.line	26
        MOV       @_OSPrioHighRdy,#0    ; |250| 
	.line	27
        MOVB      ACC,#0
        MOVL      @_OSTCBHighRdy,ACC    ; |251| 
	.line	28
        MOVL      @_OSTCBCur,ACC        ; |252| 
	.line	29
        MOVL      @_OSTCBList,ACC       ; |253| 
	.line	30
        MOV       *-SP[10],#0           ; |254| 
        MOV       AL,*-SP[10]           ; |254| 
        CMPB      AL,#13                ; |254| 
        B         L10,HIS               ; |254| 
        ; branch occurs ; |254| 
L9:    
	.line	31
        MOVU      ACC,*-SP[10]
        MOVL      XAR4,#_OSTCBPrioTbl   ; |255| 
        LSL       ACC,1                 ; |255| 
        ADDL      XAR4,ACC
        MOVB      ACC,#0
        MOVL      *+XAR4[0],ACC         ; |255| 
	.line	32
        INC       *-SP[10]              ; |256| 
        MOV       AL,*-SP[10]           ; |256| 
        CMPB      AL,#13                ; |256| 
        B         L9,LO                 ; |256| 
        ; branch occurs ; |256| 
L10:    
	.line	33
        MOV       *-SP[10],#0           ; |257| 
        MOV       AL,*-SP[10]           ; |257| 
        CMPB      AL,#3                 ; |257| 
        B         L12,HIS               ; |257| 
        ; branch occurs ; |257| 
L11:    
	.line	34
        MOV       AL,*-SP[10]           ; |258| 
        MOV       T,#24
        ADDB      AL,#1                 ; |258| 
        MOVL      XAR5,#_OSTCBTbl       ; |258| 
        MPYU      ACC,T,AL              ; |258| 
        MOV       T,#24
        ADDL      XAR5,ACC
        MOVL      XAR4,#_OSTCBTbl+10    ; |258| 
        MPYU      ACC,T,*-SP[10]        ; |258| 
        ADDL      XAR4,ACC
        MOVL      *+XAR4[0],XAR5        ; |258| 
	.line	35
        INC       *-SP[10]              ; |259| 
        MOV       AL,*-SP[10]           ; |259| 
        CMPB      AL,#3                 ; |259| 
        B         L11,LO                ; |259| 
        ; branch occurs ; |259| 
L12:    
	.line	36
        MOVB      ACC,#0
        MOVW      DP,#_OSTCBTbl+82
        MOVL      @_OSTCBTbl+82,ACC     ; |260| 
	.line	37
        MOVL      XAR4,#_OSTCBTbl       ; |261| 
        MOVW      DP,#_OSTCBFreeList
        MOVL      @_OSTCBFreeList,XAR4  ; |261| 
	.line	40
        MOV       *-SP[10],#0           ; |264| 
        MOV       AL,*-SP[10]           ; |264| 
        BF        L14,NEQ               ; |264| 
        ; branch occurs ; |264| 
L13:    
	.line	41
        MOVU      ACC,*-SP[10]
        MOVL      XAR5,#_OSEventTbl     ; |265| 
        ADDB      ACC,#1                ; |265| 
        MOVL      XAR4,#_OSEventTbl     ; |265| 
        LSL       ACC,3                 ; |265| 
        ADDL      XAR5,ACC
        MOVU      ACC,*-SP[10]
        LSL       ACC,3                 ; |265| 
        ADDL      XAR4,ACC
        MOVL      *+XAR4[0],XAR5        ; |265| 
	.line	42
        INC       *-SP[10]              ; |266| 
        MOV       AL,*-SP[10]           ; |266| 
        BF        L13,EQ                ; |266| 
        ; branch occurs ; |266| 
L14:    
	.line	43
        MOVB      ACC,#0
        MOVW      DP,#_OSEventTbl+8
        MOVL      @_OSEventTbl+8,ACC    ; |267| 
	.line	44
        MOVL      XAR4,#_OSEventTbl     ; |268| 
        MOVW      DP,#_OSEventFreeList
        MOVL      @_OSEventFreeList,XAR4 ; |268| 
	.line	71
        MOVL      XAR4,#_OSTaskIdleStk  ; |295| 
        MOVB      ACC,#0
        MOVL      *-SP[2],XAR4          ; |295| 
        MOV       *-SP[3],#12
        MOVB      XAR5,#0
        MOV       *-SP[4],#65535        ; |295| 
        MOVL      XAR4,#_OSTaskIdleStk+9 ; |295| 
        MOVL      *-SP[6],XAR4          ; |295| 
        MOVL      *-SP[8],ACC           ; |295| 
        MOV       *-SP[9],#3
        MOVL      XAR4,#_OSTaskIdle     ; |295| 
        MOVB      ACC,#10
        LCR       #_OSTaskCreateExt     ; |295| 
        ; call occurs [#_OSTaskCreateExt] ; |295| 
	.line	98
        MOVL      XAR4,#_OSTaskStatStk  ; |322| 
        MOVL      *-SP[2],XAR4          ; |322| 
        MOV       *-SP[3],#11
        MOV       *-SP[4],#65534        ; |322| 
        MOVB      ACC,#0
        MOVL      XAR4,#_OSTaskStatStk+9 ; |322| 
        MOVL      *-SP[6],XAR4          ; |322| 
        MOVL      XAR4,#_OSTaskStat     ; |322| 
        MOVL      *-SP[8],ACC           ; |322| 
        MOVB      XAR5,#0
        MOV       *-SP[9],#3
        MOVB      ACC,#10
        LCR       #_OSTaskCreateExt     ; |322| 
        ; call occurs [#_OSTaskCreateExt] ; |322| 
	.line	122
        SUBB      SP,#10
        LRETR
        ; return occurs
	.endfunc	346,000000000h,10



	.sect	".text"
	.global	_OSIntEnter
	.sym	_OSIntEnter,_OSIntEnter, 32, 2, 0
	.func	371

;***************************************************************
;* FNAME: _OSIntEnter                   FR SIZE:   0           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  0 Auto,  0 SOE     *
;***************************************************************

_OSIntEnter:
	.line	2
	.line	3
    SETC INTM 
	.line	4
        MOVW      DP,#_OSIntNesting
        INC       @_OSIntNesting        ; |374| 
	.line	5
    CLRC INTM 
	.line	6
        LRETR
        ; return occurs
	.endfunc	376,000000000h,0



	.sect	".text"
	.global	_OSIntExit
	.sym	_OSIntExit,_OSIntExit, 32, 2, 0
	.func	397

;***************************************************************
;* FNAME: _OSIntExit                    FR SIZE:   0           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  0 Auto,  0 SOE     *
;***************************************************************

_OSIntExit:
	.line	2
	.line	3
    SETC INTM 
	.line	4
        MOVW      DP,#_OSIntNesting
        MOV       AL,@_OSIntNesting     ; |400| 
        ADDB      AL,#-1
        MOV       @_OSIntNesting,AL     ; |400| 
        MOV       AH,@_OSLockNesting    ; |400| 
        OR        AH,AL                 ; |400| 
        BF        L15,NEQ               ; |400| 
        ; branch occurs ; |400| 
	.line	5
        MOVZ      AR0,@_OSRdyGrp        ; |401| 
        MOVL      XAR4,#_OSUnMapTbl     ; |401| 
        MOV       AL,*+XAR4[AR0]        ; |401| 
        MOV       @_OSIntExitY,AL       ; |401| 
	.line	6
        MOVZ      AR0,@_OSIntExitY      ; |402| 
        MOVL      XAR4,#_OSRdyTbl       ; |402| 
        MOVZ      AR0,*+XAR4[AR0]       ; |402| 
        MOV       ACC,@_OSIntExitY << #3 ; |402| 
        MOVL      XAR4,#_OSUnMapTbl     ; |402| 
        ADD       AL,*+XAR4[AR0]        ; |402| 
        MOV       @_OSPrioHighRdy,AL    ; |402| 
	.line	7
        MOV       AL,@_OSPrioCur        ; |403| 
        CMP       AL,@_OSPrioHighRdy    ; |403| 
        BF        L15,EQ                ; |403| 
        ; branch occurs ; |403| 
	.line	8
        MOVU      ACC,@_OSPrioHighRdy
        MOVL      XAR4,#_OSTCBPrioTbl   ; |404| 
        LSL       ACC,1                 ; |404| 
        ADDL      XAR4,ACC
        MOVL      ACC,*+XAR4[0]         ; |404| 
        MOVL      @_OSTCBHighRdy,ACC    ; |404| 
	.line	9
        MOVL      ACC,@_OSCtxSwCtr      ; |405| 
        ADDB      ACC,#1                ; |405| 
        MOVL      @_OSCtxSwCtr,ACC      ; |405| 
	.line	10
        LCR       #_OSIntCtxSw          ; |406| 
        ; call occurs [#_OSIntCtxSw] ; |406| 
L15:    
	.line	13
    CLRC INTM 
	.line	14
        LRETR
        ; return occurs
	.endfunc	410,000000000h,0



	.sect	".text"
	.global	_OSSched
	.sym	_OSSched,_OSSched, 32, 2, 0
	.func	429

;***************************************************************
;* FNAME: _OSSched                      FR SIZE:   1           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  1 Auto,  0 SOE     *
;***************************************************************

_OSSched:
	.line	2
	.sym	_y,-1, 12, 1, 16
        ADDB      SP,#1
	.line	6
    SETC INTM 
	.line	7
        MOVW      DP,#_OSIntNesting
        MOV       AL,@_OSIntNesting     ; |435| 
        OR        AL,@_OSLockNesting    ; |435| 
        BF        L16,NEQ               ; |435| 
        ; branch occurs ; |435| 
	.line	8
        MOVZ      AR0,@_OSRdyGrp        ; |436| 
        MOVL      XAR4,#_OSUnMapTbl     ; |436| 
        MOV       AL,*+XAR4[AR0]        ; |436| 
        MOV       *-SP[1],AL            ; |436| 
	.line	9
        MOVZ      AR0,*-SP[1]           ; |437| 
        MOVL      XAR4,#_OSRdyTbl       ; |437| 
        MOVZ      AR0,*+XAR4[AR0]       ; |437| 
        MOV       ACC,*-SP[1] << #3     ; |437| 
        MOVL      XAR4,#_OSUnMapTbl     ; |437| 
        ADD       AL,*+XAR4[AR0]        ; |437| 
        MOV       @_OSPrioHighRdy,AL    ; |437| 
	.line	10
        MOV       AL,@_OSPrioCur        ; |438| 
        CMP       AL,@_OSPrioHighRdy    ; |438| 
        BF        L16,EQ                ; |438| 
        ; branch occurs ; |438| 
	.line	11
        MOVU      ACC,@_OSPrioHighRdy
        MOVL      XAR4,#_OSTCBPrioTbl   ; |439| 
        LSL       ACC,1                 ; |439| 
        ADDL      XAR4,ACC
        MOVL      ACC,*+XAR4[0]         ; |439| 
        MOVL      @_OSTCBHighRdy,ACC    ; |439| 
	.line	12
        MOVL      ACC,@_OSCtxSwCtr      ; |440| 
        ADDB      ACC,#1                ; |440| 
        MOVL      @_OSCtxSwCtr,ACC      ; |440| 
	.line	13
     TRAP #31
L16:    
	.line	16
    CLRC INTM 
	.line	17
        SUBB      SP,#1
        LRETR
        ; return occurs
	.endfunc	445,000000000h,1



	.sect	".text"
	.global	_OSSchedLock
	.sym	_OSSchedLock,_OSSchedLock, 32, 2, 0
	.func	463

;***************************************************************
;* FNAME: _OSSchedLock                  FR SIZE:   0           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  0 Auto,  0 SOE     *
;***************************************************************

_OSSchedLock:
	.line	2
	.line	3
        MOVW      DP,#_OSRunning
        MOV       AL,@_OSRunning        ; |465| 
        CMPB      AL,#1                 ; |465| 
        BF        L17,NEQ               ; |465| 
        ; branch occurs ; |465| 
	.line	4
    SETC INTM 
	.line	5
        INC       @_OSLockNesting       ; |467| 
	.line	6
    CLRC INTM 
	.line	7
L17:    
	.line	8
        LRETR
        ; return occurs
	.endfunc	470,000000000h,0



	.sect	".text"
	.global	_OSSchedUnlock
	.sym	_OSSchedUnlock,_OSSchedUnlock, 32, 2, 0
	.func	487

⌨️ 快捷键说明

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