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

📄 main_nonbios.asm

📁 2812 开发库
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.sym	_err,-10, 5, 1, 32
        ADDB      SP,#10
;----------------------------------------------------------------------
; 134 | long int temp1,temp2;                                                  
; 135 | long int err;                                                          
;----------------------------------------------------------------------
        MOVL      *-SP[4],ACC           ; |133| 
	.line	5
;----------------------------------------------------------------------
; 136 | temp1 = 1;                                                             
;----------------------------------------------------------------------
        MOVB      ACC,#1
        MOVL      *-SP[6],ACC           ; |136| 
	.line	6
;----------------------------------------------------------------------
; 137 | while(1)                                                               
;----------------------------------------------------------------------
L10:    
	.line	8
;----------------------------------------------------------------------
; 139 | temp2 = (M/temp1 + temp1) >>1;                                         
;----------------------------------------------------------------------
        MOVL      ACC,*-SP[6]           ; |139| 
        MOVL      *-SP[2],ACC           ; |139| 
        MOVL      ACC,*-SP[4]           ; |139| 
        FFC       XAR7,#L$$DIV          ; |139| 
        ; call occurs [#L$$DIV] ; |139| 
        SETC      SXM
        ADDL      ACC,*-SP[6]           ; |139| 
        SFR       ACC,1                 ; |139| 
        MOVL      *-SP[8],ACC           ; |139| 
	.line	9
;----------------------------------------------------------------------
; 140 | err =  (temp1 >= temp2) ? (temp1-temp2) : (temp2-temp1);               
;----------------------------------------------------------------------
        MOVL      ACC,*-SP[8]           ; |140| 
        CMPL      ACC,*-SP[6]           ; |140| 
        B         L11,GT                ; |140| 
        ; branch occurs ; |140| 
        MOVL      ACC,*-SP[6]           ; |140| 
        SUBL      ACC,*-SP[8]           ; |140| 
        B         L12,UNC               ; |140| 
        ; branch occurs ; |140| 
L11:    
        MOVL      ACC,*-SP[8]           ; |140| 
        SUBL      ACC,*-SP[6]           ; |140| 
L12:    
        MOVL      *-SP[10],ACC          ; |140| 
	.line	10
;----------------------------------------------------------------------
; 141 | if (err <= 1) return (int)temp2;                                       
;----------------------------------------------------------------------
        MOVB      ACC,#1
        CMPL      ACC,*-SP[10]          ; |141| 
        B         L13,LT                ; |141| 
        ; branch occurs ; |141| 
        MOV       AL,*-SP[8]            ; |141| 
        B         L14,UNC               ; |141| 
        ; branch occurs ; |141| 
L13:    
	.line	11
;----------------------------------------------------------------------
; 142 | else temp1 = temp2;                                                    
;----------------------------------------------------------------------
        MOVL      ACC,*-SP[8]           ; |142| 
        MOVL      *-SP[6],ACC           ; |142| 
	.line	12
        B         L10,UNC               ; |143| 
        ; branch occurs ; |143| 
L14:    
	.line	13
        SUBB      SP,#10                ; |143| 
        LRETR
        ; return occurs
	.endfunc	144,000000000h,10



	.sect	".text"
	.global	_CAL_SAMPLE
	.sym	_CAL_SAMPLE,_CAL_SAMPLE, 32, 2, 0
	.func	146
;----------------------------------------------------------------------
; 146 | void CAL_SAMPLE()                                                      
;----------------------------------------------------------------------

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

_CAL_SAMPLE:
	.line	2
        ADDB      SP,#2
	.line	3
;----------------------------------------------------------------------
; 148 | Ua_Am = CC_INT(vr[0],vi[0]);                                           
;----------------------------------------------------------------------
        MOVW      DP,#_vr
        MOV       AL,@_vr               ; |148| 
        MOV       AH,@_vi               ; |148| 
        LCR       #_CC_INT              ; |148| 
        ; call occurs [#_CC_INT] ; |148| 
        MOVW      DP,#_Ua_Am
        MOV       @_Ua_Am,AL            ; |148| 
	.line	4
;----------------------------------------------------------------------
; 149 | Ub_Am = CC_INT(vr[1],vi[1]);                                           
;----------------------------------------------------------------------
        MOV       AL,@_vr+1             ; |149| 
        MOV       AH,@_vi+1             ; |149| 
        LCR       #_CC_INT              ; |149| 
        ; call occurs [#_CC_INT] ; |149| 
        MOVW      DP,#_Ub_Am
        MOV       @_Ub_Am,AL            ; |149| 
	.line	5
;----------------------------------------------------------------------
; 150 | Uc_Am = CC_INT(vr[2],vi[2]);                                           
;----------------------------------------------------------------------
        MOV       AL,@_vr+2             ; |150| 
        MOV       AH,@_vi+2             ; |150| 
        LCR       #_CC_INT              ; |150| 
        ; call occurs [#_CC_INT] ; |150| 
        MOVW      DP,#_Uc_Am
        MOV       @_Uc_Am,AL            ; |150| 
	.line	6
;----------------------------------------------------------------------
; 151 | Ia_Am = CC_INT(vr[3],vi[3]);                                           
;----------------------------------------------------------------------
        MOV       AL,@_vr+3             ; |151| 
        MOV       AH,@_vi+3             ; |151| 
        LCR       #_CC_INT              ; |151| 
        ; call occurs [#_CC_INT] ; |151| 
        MOVW      DP,#_Ia_Am
        MOV       @_Ia_Am,AL            ; |151| 
	.line	7
;----------------------------------------------------------------------
; 152 | Ib_Am = CC_INT(vr[4],vi[4]);                                           
;----------------------------------------------------------------------
        MOV       AL,@_vr+4             ; |152| 
        MOV       AH,@_vi+4             ; |152| 
        LCR       #_CC_INT              ; |152| 
        ; call occurs [#_CC_INT] ; |152| 
        MOVW      DP,#_Ib_Am
        MOV       @_Ib_Am,AL            ; |152| 
	.line	8
;----------------------------------------------------------------------
; 153 | Ic_Am = CC_INT(vr[5],vi[5]);                                           
;----------------------------------------------------------------------
        MOV       AL,@_vr+5             ; |153| 
        MOV       AH,@_vi+5             ; |153| 
        LCR       #_CC_INT              ; |153| 
        ; call occurs [#_CC_INT] ; |153| 
        MOVW      DP,#_Ic_Am
        MOV       @_Ic_Am,AL            ; |153| 
	.line	10
;----------------------------------------------------------------------
; 155 | P_A = ((long)vr[0]*vr[3] + (long)vi[0]*vi[3] >>1) *131 >>16;  // 1/1000
;----------------------------------------------------------------------
        MOV       T,@_vr+3              ; |155| 
        MPY       P,T,@_vr              ; |155| 
        MOV       T,@_vi+3              ; |155| 
        MOVB      XAR6,#131
        MPY       ACC,T,@_vi            ; |155| 
        ADDL      ACC,P
        SETC      SXM
        MOVL      XT,XAR6               ; |155| 
        SFR       ACC,1                 ; |155| 
        IMPYL     ACC,XT,ACC            ; |155| 
        SFR       ACC,16                ; |155| 
        MOVL      @_P_A,ACC             ; |155| 
	.line	11
;----------------------------------------------------------------------
; 156 | P_B = ((long)vr[1]*vr[4] + (long)vi[1]*vi[4] >>1) *131 >>16;           
;----------------------------------------------------------------------
        MOV       T,@_vr+4              ; |156| 
        MPY       P,T,@_vr+1            ; |156| 
        MOV       T,@_vi+4              ; |156| 
        MPY       ACC,T,@_vi+1          ; |156| 
        ADDL      ACC,P
        SFR       ACC,1                 ; |156| 
        MOVL      XT,XAR6               ; |156| 
        IMPYL     ACC,XT,ACC            ; |156| 
        SFR       ACC,16                ; |156| 
        MOVL      @_P_B,ACC             ; |156| 
	.line	12
;----------------------------------------------------------------------
; 157 | P_C = ((long)vr[2]*vr[5] + (long)vi[2]*vi[5] >>1) *131 >>16;           
;----------------------------------------------------------------------
        MOV       T,@_vr+5              ; |157| 
        MPY       P,T,@_vr+2            ; |157| 
        MOV       T,@_vi+5              ; |157| 
        MPY       ACC,T,@_vi+2          ; |157| 
        ADDL      ACC,P
        SFR       ACC,1                 ; |157| 
        MOVL      XT,XAR6               ; |157| 
        IMPYL     ACC,XT,ACC            ; |157| 
        SFR       ACC,16                ; |157| 
        MOVL      @_P_C,ACC             ; |157| 
	.line	13
;----------------------------------------------------------------------
; 158 | P_3 = P_A + P_B + P_C;                                                 
;----------------------------------------------------------------------
        MOVL      ACC,@_P_B             ; |158| 
        ADDL      ACC,@_P_A             ; |158| 
        ADDL      ACC,@_P_C             ; |158| 
        MOVL      @_P_3,ACC             ; |158| 
	.line	14
;----------------------------------------------------------------------
; 159 | Q_A = ((long)vi[0]*vr[3] - (long)vr[0]*vi[3] >>1) *131 >>16;           
;----------------------------------------------------------------------
        MOV       T,@_vi+3              ; |159| 
        MPY       P,T,@_vr              ; |159| 
        MOV       T,@_vr+3              ; |159| 
        MPY       ACC,T,@_vi            ; |159| 
        SUBL      ACC,P
        MOVL      XT,XAR6               ; |159| 
        SFR       ACC,1                 ; |159| 
        IMPYL     ACC,XT,ACC            ; |159| 
        SFR       ACC,16                ; |159| 
        MOVL      @_Q_A,ACC             ; |159| 
	.line	15
;----------------------------------------------------------------------
; 160 | Q_B = ((long)vi[1]*vr[4] - (long)vr[1]*vi[4] >>1) *131 >>16;           
;----------------------------------------------------------------------
        MOV       T,@_vi+4              ; |160| 
        MPY       P,T,@_vr+1            ; |160| 
        MOV       T,@_vr+4              ; |160| 
        MPY       ACC,T,@_vi+1          ; |160| 
        SUBL      ACC,P
        SFR       ACC,1                 ; |160| 
        MOVL      XT,XAR6               ; |160| 
        IMPYL     ACC,XT,ACC            ; |160| 
        SFR       ACC,16                ; |160| 
        MOVL      @_Q_B,ACC             ; |160| 
	.line	16
;----------------------------------------------------------------------
; 161 | Q_C = ((long)vi[2]*vr[5] - (long)vr[2]*vi[5] >>1) *131 >>16;           
;----------------------------------------------------------------------
        MOV       T,@_vi+5              ; |161| 
        MPY       P,T,@_vr+2            ; |161| 
        MOV       T,@_vr+5              ; |161| 
        MPY       ACC,T,@_vi+2          ; |161| 
        MOVL      XT,XAR6               ; |161| 
        SUBL      ACC,P
        SFR       ACC,1                 ; |161| 
        IMPYL     ACC,XT,ACC            ; |161| 
        SFR       ACC,16                ; |161| 
        MOVL      @_Q_C,ACC             ; |161| 
	.line	17
;----------------------------------------------------------------------
; 162 | Q_3 = Q_A + Q_B + Q_C;                                                 
;----------------------------------------------------------------------
        MOVL      ACC,@_Q_B             ; |162| 
        ADDL      ACC,@_Q_A             ; |162| 
        ADDL      ACC,@_Q_C             ; |162| 
        MOVL      @_Q_3,ACC             ; |162| 
	.line	18
;----------------------------------------------------------------------
; 163 | S_A = ((long)Ua_Am * Ia_Am >>1) *131 >>16;                             
;----------------------------------------------------------------------
        MOV       T,@_Ia_Am             ; |163| 
        SPM       #-1
        MPY       P,T,@_Ua_Am
        MOVL      ACC,P << PM
        SPM       #0
        MOVL      XT,XAR6               ; |163| 
        IMPYL     ACC,XT,ACC            ; |163| 
        SFR       ACC,16                ; |163| 
        MOVL      @_S_A,ACC             ; |163| 
	.line	19
;----------------------------------------------------------------------
; 164 | S_B = ((long)Ub_Am * Ib_Am >>1) *131 >>16;                             
;----------------------------------------------------------------------
        SPM       #-1
        MOV       T,@_Ib_Am             ; |164| 
        MPY       P,T,@_Ub_Am
        MOVL      ACC,P << PM
        SPM       #0
        MOVL      XT,XAR6               ; |164| 
        IMPYL     ACC,XT,ACC            ; |164| 
        SFR       ACC,16                ; |164| 
        MOVL      @_S_B,ACC             ; |164| 
	.line	20
;----------------------------------------------------------------------
; 165 | S_C = ((long)Uc_Am * Ic_Am >>1) *131 >>16;                             
;----------------------------------------------------------------------
        MOV       T,@_Ic_Am             ; |165| 
        MPY       P,T,@_Uc_Am
        SPM       #-1
        MOVL      ACC,P << PM
        MOVL      XT,XAR6               ; |165| 
        SPM       #0
        IMPYL     ACC,XT,ACC            ; |165| 
        SFR       ACC,16                ; |165| 
        MOVL      @_S_C,ACC             ; |165| 
	.line	21
;----------------------------------------------------------------------
; 166 | S_3 = S_A + S_B + S_C;                                                 
;----------------------------------------------------------------------
        MOVL      ACC,@_S_B             ; |166| 
        ADDL      ACC,@_S_A             ; |166| 
        ADDL      ACC,@_S_C             ; |166| 

⌨️ 快捷键说明

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