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

📄 main_nonbios.asm

📁 2812 开发库
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        ; call occurs [#_BCD_HEX] ; |94| 
        MOV       @_TimerDate,AL        ; |94| 
	.line	8
;----------------------------------------------------------------------
;  95 | TimerMonth = BCD_HEX(*TIMER_MONTH & 0xFF);                             
;----------------------------------------------------------------------
        MOVL      XAR4,#557054          ; |95| 
        AND       AL,*+XAR4[0],#0x00ff  ; |95| 
        LCR       #_BCD_HEX             ; |95| 
        ; call occurs [#_BCD_HEX] ; |95| 
        MOV       @_TimerMonth,AL       ; |95| 
	.line	9
;----------------------------------------------------------------------
;  96 | TimerYear = BCD_HEX(*TIMER_YEAR & 0xFF);                               
;----------------------------------------------------------------------
        MOVL      XAR4,#557055          ; |96| 
        AND       AL,*+XAR4[0],#0x00ff  ; |96| 
        LCR       #_BCD_HEX             ; |96| 
        ; call occurs [#_BCD_HEX] ; |96| 
        MOV       @_TimerYear,AL        ; |96| 
	.line	10
;----------------------------------------------------------------------
;  97 | *TIMER_FLAG = 0x00;                                                    
;----------------------------------------------------------------------
        MOVL      XAR4,#557040          ; |97| 
        MOV       *+XAR4[0],#0          ; |97| 
	.line	11
        LRETR
        ; return occurs
	.endfunc	98,000000000h,0



	.sect	".text"
	.global	_PERIOD
	.sym	_PERIOD,_PERIOD, 46, 2, 0
	.func	100
;----------------------------------------------------------------------
; 100 | unsigned int PERIOD()       // Caculate signal period for frequency    
;----------------------------------------------------------------------

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

_PERIOD:
	.line	2
;----------------------------------------------------------------------
; 102 | unsigned int first,second,diff;                                        
; 103 | static unsigned int period = 46874;                                    
;----------------------------------------------------------------------
	.sym	_first,-1, 14, 1, 16
	.sym	_second,-2, 14, 1, 16
	.sym	_diff,-3, 14, 1, 16
        ADDB      SP,#3
	.line	5
;----------------------------------------------------------------------
; 104 | if(EvaRegs.CAPFIFOA.bit.CAP1FIFO>1)                                    
;----------------------------------------------------------------------
        MOVW      DP,#_EvaRegs+34
        AND       AL,@_EvaRegs+34,#0x0300 ; |104| 
        LSR       AL,8                  ; |104| 
        CMPB      AL,#1                 ; |104| 
        B         L3,LEQ                ; |104| 
        ; branch occurs ; |104| 
	.line	7
;----------------------------------------------------------------------
; 106 | first = EvaRegs.CAP1FIFO;                                              
;----------------------------------------------------------------------
        MOV       AL,@_EvaRegs+35       ; |106| 
        MOV       *-SP[1],AL            ; |106| 
	.line	8
;----------------------------------------------------------------------
; 107 | second = EvaRegs.CAP1FIFO;                                             
;----------------------------------------------------------------------
        MOV       AL,@_EvaRegs+35       ; |107| 
        MOV       *-SP[2],AL            ; |107| 
	.line	9
;----------------------------------------------------------------------
; 108 | if (second > first) diff = second-first;                               
;----------------------------------------------------------------------
        MOV       AL,*-SP[1]            ; |108| 
        CMP       AL,*-SP[2]            ; |108| 
        B         L1,HIS                ; |108| 
        ; branch occurs ; |108| 
        MOV       AL,*-SP[2]            ; |108| 
        SUB       AL,*-SP[1]            ; |108| 
        MOV       *-SP[3],AL            ; |108| 
        B         L2,UNC                ; |108| 
        ; branch occurs ; |108| 
L1:    
	.line	10
;----------------------------------------------------------------------
; 109 | else diff = 65536-first+second;                                        
;----------------------------------------------------------------------
        MOVU      ACC,*-SP[2]
        SUBU      ACC,*-SP[1]           ; |109| 
        ADD       ACC,#2 << 15          ; |109| 
        MOV       *-SP[3],AL            ; |109| 
L2:    
	.line	11
;----------------------------------------------------------------------
; 110 | if (diff>40000 && diff<60000)                                          
;----------------------------------------------------------------------
        CMP       AL,#40000             ; |110| 
        B         L3,LOS                ; |110| 
        ; branch occurs ; |110| 
        CMP       AL,#60000             ; |110| 
        B         L3,HIS                ; |110| 
        ; branch occurs ; |110| 
	.line	12
;----------------------------------------------------------------------
; 111 | period = diff;                                                         
;----------------------------------------------------------------------
        MOVW      DP,#_period$1
        MOV       @_period$1,AL         ; |111| 
L3:    
	.line	14
;----------------------------------------------------------------------
; 113 | if(diff>46974 || diff<46774) EvaRegs.T2PR = period;                    
;----------------------------------------------------------------------
        MOV       AL,*-SP[3]            ; |113| 
        CMP       AL,#46974             ; |113| 
        B         L4,HI                 ; |113| 
        ; branch occurs ; |113| 
        CMP       AL,#46774             ; |113| 
        B         L5,HIS                ; |113| 
        ; branch occurs ; |113| 
L4:    
        MOVW      DP,#_period$1
        MOV       AL,@_period$1         ; |113| 
        MOVW      DP,#_EvaRegs+7
        MOV       @_EvaRegs+7,AL        ; |113| 
L5:    
	.line	15
;----------------------------------------------------------------------
; 114 | return period;                                                         
;----------------------------------------------------------------------
        MOVW      DP,#_period$1
        MOV       AL,@_period$1         ; |114| 
	.line	16
        SUBB      SP,#3                 ; |114| 
        LRETR
        ; return occurs
	.endfunc	115,000000000h,3



	.sect	".text"
	.global	_CC_INT
	.sym	_CC_INT,_CC_INT, 36, 2, 0
	.func	117
;----------------------------------------------------------------------
; 117 | int CC_INT(int AA,int BB)         /** max error is 0.17% **/           
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _CC_INT                       FR SIZE:  14           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            2 Parameter,  9 Auto,  2 SOE     *
;***************************************************************

_CC_INT:
	.line	2
;* AL    assigned to _AA
	.sym	_AA,0, 4, 17, 16
;* AH    assigned to _BB
	.sym	_BB,1, 4, 17, 16
	.sym	_AA,-3, 4, 1, 16
	.sym	_BB,-4, 4, 1, 16
	.sym	_aa,-5, 4, 1, 16
	.sym	_ab,-6, 4, 1, 16
	.sym	_L,-7, 4, 1, 16
	.sym	_S,-8, 4, 1, 16
	.sym	_temp,-10, 6, 1, 32
	.sym	_CC,-11, 4, 1, 16
        MOVL      *SP++,XAR1
        ADDB      SP,#12
;----------------------------------------------------------------------
; 119 | int aa,ab;                                                             
; 120 | int L,S;                                                               
; 121 | float temp;                                                            
; 122 | int CC;                                                                
;----------------------------------------------------------------------
        MOV       *-SP[4],AH            ; |118| 
        MOV       *-SP[3],AL            ; |118| 
	.line	7
;----------------------------------------------------------------------
; 123 | aa = (AA>0) ? AA : -AA;                                                
;----------------------------------------------------------------------
        CMPB      AL,#0                 ; |123| 
        B         L6,GT                 ; |123| 
        ; branch occurs ; |123| 
        NEG       AL                    ; |123| 
L6:    
        MOV       *-SP[5],AL            ; |123| 
	.line	8
;----------------------------------------------------------------------
; 124 | ab = (BB>0) ? BB : -BB;                                                
;----------------------------------------------------------------------
        MOV       AL,*-SP[4]            ; |124| 
        B         L7,GT                 ; |124| 
        ; branch occurs ; |124| 
        NEG       AL                    ; |124| 
L7:    
        MOV       *-SP[6],AL            ; |124| 
	.line	9
;----------------------------------------------------------------------
; 125 | L = (aa>ab) ? aa : ab;                                                 
;----------------------------------------------------------------------
        CMP       AL,*-SP[5]            ; |125| 
        B         L8,GEQ                ; |125| 
        ; branch occurs ; |125| 
        MOV       AL,*-SP[5]            ; |125| 
L8:    
        MOV       *-SP[7],AL            ; |125| 
	.line	10
;----------------------------------------------------------------------
; 126 | S = (aa<ab) ? aa : ab;                                                 
;----------------------------------------------------------------------
        MOV       AL,*-SP[6]            ; |126| 
        CMP       AL,*-SP[5]            ; |126| 
        B         L9,LEQ                ; |126| 
        ; branch occurs ; |126| 
        MOV       AL,*-SP[5]            ; |126| 
L9:    
        MOV       *-SP[8],AL            ; |126| 
	.line	11
;----------------------------------------------------------------------
; 127 | temp = (float)((long)5*S*S)/(float)((long)3*(3*L+S));                  
;----------------------------------------------------------------------
        MOV       T,*-SP[8]             ; |127| 
        MPY       P,T,*-SP[8]           ; |127| 
        MOVL      ACC,P                 ; |127| 
        LSL       ACC,2                 ; |127| 
        ADDL      ACC,P
        LCR       #L$$TOFS              ; |127| 
        ; call occurs [#L$$TOFS] ; |127| 
        MOVL      XAR1,ACC              ; |127| 
        MOV       T,*-SP[7]             ; |127| 
        MPYB      ACC,T,#3              ; |127| 
        ADD       AL,*-SP[8]            ; |127| 
        MOV       T,AL                  ; |127| 
        MPYB      ACC,T,#3              ; |127| 
        LCR       #L$$TOFS              ; |127| 
        ; call occurs [#L$$TOFS] ; |127| 
        MOVL      *-SP[2],ACC           ; |127| 
        MOVL      ACC,XAR1              ; |127| 
        LCR       #FS$$DIV              ; |127| 
        ; call occurs [#FS$$DIV] ; |127| 
        MOVL      *-SP[10],ACC          ; |127| 
	.line	12
;----------------------------------------------------------------------
; 128 | CC = L + (int)temp;                                                    
;----------------------------------------------------------------------
        MOVL      ACC,*-SP[10]          ; |128| 
        LCR       #FS$$TOI              ; |128| 
        ; call occurs [#FS$$TOI] ; |128| 
        MOV       AH,*-SP[7]            ; |128| 
        ADD       AH,AL                 ; |128| 
        MOV       *-SP[11],AH           ; |128| 
	.line	13
;----------------------------------------------------------------------
; 129 | return CC;                                                             
;----------------------------------------------------------------------
        MOV       AL,*-SP[11]           ; |129| 
	.line	14
        SUBB      SP,#12                ; |129| 
        MOVL      XAR1,*--SP            ; |129| 
        LRETR
        ; return occurs
	.endfunc	130,0000000c0h,14



	.sect	".text"
	.global	_SQRT_INT
	.sym	_SQRT_INT,_SQRT_INT, 36, 2, 0
	.func	132
;----------------------------------------------------------------------
; 132 | int SQRT_INT(long int M)                                               
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _SQRT_INT                     FR SIZE:  10           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            2 Parameter,  8 Auto,  0 SOE     *
;***************************************************************

_SQRT_INT:
	.line	2
;* AL    assigned to _M
	.sym	_M,0, 5, 17, 32
	.sym	_M,-4, 5, 1, 32
	.sym	_temp1,-6, 5, 1, 32
	.sym	_temp2,-8, 5, 1, 32

⌨️ 快捷键说明

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