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

📄 ucos_ii.asm

📁 《uC/os-II 内核分析.移植与驱动程序开发》随书光盘中的全部源代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        MOVW      DP,#_OSPrioCur
        MOV       @_OSPrioCur,#0        ; |250| 
	.line	26
        MOV       @_OSPrioHighRdy,#0    ; |251| 
	.line	27
        MOVB      ACC,#0
        MOVL      @_OSTCBHighRdy,ACC    ; |252| 
	.line	28
        MOVL      @_OSTCBCur,ACC        ; |253| 
	.line	29
        MOVL      @_OSTCBList,ACC       ; |254| 
	.line	30
        MOV       *-SP[3],#0            ; |255| 
        MOV       AL,*-SP[3]            ; |255| 
        CMPB      AL,#61                ; |255| 
        B         L10,HIS               ; |255| 
        ; branch occurs ; |255| 
L9:    
	.line	31
        MOVU      ACC,*-SP[3]
        MOVL      XAR4,#_OSTCBPrioTbl   ; |256| 
        LSL       ACC,1                 ; |256| 
        ADDL      XAR4,ACC
        MOVB      ACC,#0
        MOVL      *+XAR4[0],ACC         ; |256| 
	.line	32
        INC       *-SP[3]               ; |257| 
        MOV       AL,*-SP[3]            ; |257| 
        CMPB      AL,#61                ; |257| 
        B         L9,LO                 ; |257| 
        ; branch occurs ; |257| 
L10:    
	.line	33
        MOV       *-SP[3],#0            ; |258| 
        MOV       AL,*-SP[3]            ; |258| 
        CMPB      AL,#13                ; |258| 
        B         L12,HIS               ; |258| 
        ; branch occurs ; |258| 
L11:    
	.line	34
        MOVU      ACC,*-SP[3]
        MOVL      XAR5,#_OSTCBTbl       ; |259| 
        ADDB      ACC,#1                ; |259| 
        MOVL      XAR4,#_OSTCBTbl+2     ; |259| 
        LSL       ACC,4                 ; |259| 
        ADDL      XAR5,ACC
        MOVU      ACC,*-SP[3]
        LSL       ACC,4                 ; |259| 
        ADDL      XAR4,ACC
        MOVL      *+XAR4[0],XAR5        ; |259| 
	.line	35
        INC       *-SP[3]               ; |260| 
        MOV       AL,*-SP[3]            ; |260| 
        CMPB      AL,#13                ; |260| 
        B         L11,LO                ; |260| 
        ; branch occurs ; |260| 
L12:    
	.line	36
        MOVB      ACC,#0
        MOVW      DP,#_OSTCBTbl+210
        MOVL      @_OSTCBTbl+210,ACC    ; |261| 
	.line	37
        MOVL      XAR4,#_OSTCBTbl       ; |262| 
        MOVW      DP,#_OSTCBFreeList
        MOVL      @_OSTCBFreeList,XAR4  ; |262| 
	.line	40
        MOV       *-SP[3],#0            ; |265| 
        MOV       AL,*-SP[3]            ; |265| 
        BF        L14,NEQ               ; |265| 
        ; branch occurs ; |265| 
L13:    
	.line	41
        MOV       AL,*-SP[3]            ; |266| 
        MOV       T,#14
        ADDB      AL,#1                 ; |266| 
        MOVL      XAR5,#_OSEventTbl     ; |266| 
        MPYU      ACC,T,AL              ; |266| 
        MOV       T,#14
        ADDL      XAR5,ACC
        MOVL      XAR4,#_OSEventTbl     ; |266| 
        MPYU      ACC,T,*-SP[3]         ; |266| 
        ADDL      XAR4,ACC
        MOVL      *+XAR4[0],XAR5        ; |266| 
	.line	42
        INC       *-SP[3]               ; |267| 
        MOV       AL,*-SP[3]            ; |267| 
        BF        L13,EQ                ; |267| 
        ; branch occurs ; |267| 
L14:    
	.line	43
        MOVB      ACC,#0
        MOVW      DP,#_OSEventTbl+14
        MOVL      @_OSEventTbl+14,ACC   ; |268| 
	.line	44
        MOVL      XAR4,#_OSEventTbl     ; |269| 
        MOVL      @_OSEventFreeList,XAR4 ; |269| 
	.line	81
        MOVB      XAR5,#0
        MOVL      XAR4,#_OSTaskIdleStk  ; |306| 
        MOVL      *-SP[2],XAR4          ; |306| 
        MOVB      AL,#60                ; |306| 
        MOVL      XAR4,#_OSTaskIdle     ; |306| 
        LCR       #_OSTaskCreate        ; |306| 
        ; call occurs [#_OSTaskCreate] ; |306| 
	.line	122
        SUBB      SP,#4
        LRETR
        ; return occurs
	.endfunc	347,000000000h,4



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

;***************************************************************
;* 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        ; |375| 
	.line	5
    CLRC INTM 
	.line	6
        LRETR
        ; return occurs
	.endfunc	377,000000000h,0



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

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



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

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



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

;***************************************************************
;* 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        ; |466| 
        CMPB      AL,#1                 ; |466| 
        BF        L17,NEQ               ; |466| 
        ; branch occurs ; |466| 
	.line	4
    SETC INTM 
	.line	5
        INC       @_OSLockNesting       ; |468| 
	.line	6
    CLRC INTM 
	.line	7
L17:    
	.line	8
        LRETR
        ; return occurs
	.endfunc	471,000000000h,0



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

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

_OSSchedUnlock:
	.line	2
	.line	3
        MOVW      DP,#_OSRunning
        MOV       AL,@_OSRunning        ; |490| 
        CMPB      AL,#1                 ; |490| 
        BF        L20,NEQ               ; |490| 
        ; branch occurs ; |490| 
	.line	4
    SETC INTM 
	.line	5
        MOV       AL,@_OSLockNesting    ; |492| 
        BF        L19,EQ                ; |492| 
        ; branch occurs ; |492| 
	.line	6
        DEC       @_OSLockNesting       ; |493| 
	.line	7
        MOV       AL,@_OSIntNesting     ; |494| 
        OR        AL,@_OSLockNesting    ; |494| 
        BF        L18,NEQ               ; |494| 
        ; branch occurs ; |494| 
	.line	8
    CLRC INTM 
	.line	9
        LCR       #_OSSched             ; |496| 
        ; call occurs [#_OSSched] ; |496| 
	.line	10
        B         L20,UNC               ; |497| 
        ; branch occurs ; |497| 
L18:    
	.line	11
    CLRC INTM 
	.line	13
        B         L20,UNC               ; |500| 
        ; branch occurs ; |500| 
L19:    
	.line	14

⌨️ 快捷键说明

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