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

📄 main_nonbios.asm

📁 2812 开发库
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        MOVL      @_S_3,ACC             ; |166| 
	.line	23
;----------------------------------------------------------------------
; 168 | if (P_A > S_A) COS_A = 0;                                              
;----------------------------------------------------------------------
        MOVL      ACC,@_S_A             ; |168| 
        CMPL      ACC,@_P_A             ; |168| 
        B         L15,GEQ               ; |168| 
        ; branch occurs ; |168| 
        MOV       @_COS_A,#0            ; |168| 
        B         L16,UNC               ; |168| 
        ; branch occurs ; |168| 
L15:    
	.line	24
;----------------------------------------------------------------------
; 169 | else COS_A = P_A * 1000 / S_A;                                         
;----------------------------------------------------------------------
        MOVL      XAR4,#1000            ; |169| 
        MOVL      ACC,@_S_A             ; |169| 
        MOVL      XT,XAR4               ; |169| 
        MOVL      *-SP[2],ACC           ; |169| 
        IMPYL     ACC,XT,@_P_A          ; |169| 
        FFC       XAR7,#L$$DIV          ; |169| 
        ; call occurs [#L$$DIV] ; |169| 
        MOV       @_COS_A,AL            ; |169| 
L16:    
	.line	25
;----------------------------------------------------------------------
; 170 | if (P_B > S_B) COS_B = 0;                                              
;----------------------------------------------------------------------
        MOVL      ACC,@_S_B             ; |170| 
        CMPL      ACC,@_P_B             ; |170| 
        B         L17,GEQ               ; |170| 
        ; branch occurs ; |170| 
        MOV       @_COS_B,#0            ; |170| 
        B         L18,UNC               ; |170| 
        ; branch occurs ; |170| 
L17:    
	.line	26
;----------------------------------------------------------------------
; 171 | else COS_B = P_B * 1000 / S_B;                                         
;----------------------------------------------------------------------
        MOVL      XAR4,#1000            ; |171| 
        MOVL      ACC,@_S_B             ; |171| 
        MOVL      XT,XAR4               ; |171| 
        MOVL      *-SP[2],ACC           ; |171| 
        IMPYL     ACC,XT,@_P_B          ; |171| 
        FFC       XAR7,#L$$DIV          ; |171| 
        ; call occurs [#L$$DIV] ; |171| 
        MOV       @_COS_B,AL            ; |171| 
L18:    
	.line	27
;----------------------------------------------------------------------
; 172 | if (P_C > S_C) COS_C = 0;                                              
;----------------------------------------------------------------------
        MOVL      ACC,@_S_C             ; |172| 
        CMPL      ACC,@_P_C             ; |172| 
        B         L19,GEQ               ; |172| 
        ; branch occurs ; |172| 
        MOV       @_COS_C,#0            ; |172| 
        B         L20,UNC               ; |172| 
        ; branch occurs ; |172| 
L19:    
	.line	28
;----------------------------------------------------------------------
; 173 | else COS_C = P_C * 1000 / S_C;                                         
;----------------------------------------------------------------------
        MOVL      XAR4,#1000            ; |173| 
        MOVL      ACC,@_S_C             ; |173| 
        MOVL      XT,XAR4               ; |173| 
        MOVL      *-SP[2],ACC           ; |173| 
        IMPYL     ACC,XT,@_P_C          ; |173| 
        FFC       XAR7,#L$$DIV          ; |173| 
        ; call occurs [#L$$DIV] ; |173| 
        MOV       @_COS_C,AL            ; |173| 
L20:    
	.line	29
;----------------------------------------------------------------------
; 174 | if (P_3 > S_3) COS_3 = 0;                                              
;----------------------------------------------------------------------
        MOVL      ACC,@_S_3             ; |174| 
        CMPL      ACC,@_P_3             ; |174| 
        B         L21,GEQ               ; |174| 
        ; branch occurs ; |174| 
        MOV       @_COS_3,#0            ; |174| 
        B         L22,UNC               ; |174| 
        ; branch occurs ; |174| 
L21:    
	.line	30
;----------------------------------------------------------------------
; 175 | else COS_3 = P_3 * 1000 / S_3;                                         
;----------------------------------------------------------------------
        MOVL      XAR4,#1000            ; |175| 
        MOVL      ACC,@_S_3             ; |175| 
        MOVL      XT,XAR4               ; |175| 
        MOVL      *-SP[2],ACC           ; |175| 
        IMPYL     ACC,XT,@_P_3          ; |175| 
        FFC       XAR7,#L$$DIV          ; |175| 
        ; call occurs [#L$$DIV] ; |175| 
        MOV       @_COS_3,AL            ; |175| 
L22:    
	.line	31
        SUBB      SP,#2
        LRETR
        ; return occurs
	.endfunc	176,000000000h,2



	.sect	".text"
	.global	_CAL_HAR
	.sym	_CAL_HAR,_CAL_HAR, 36, 2, 0
	.func	178
;----------------------------------------------------------------------
; 178 | CAL_HAR()                                                              
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _CAL_HAR                      FR SIZE:  14           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            2 Parameter, 12 Auto,  0 SOE     *
;***************************************************************

_CAL_HAR:
	.line	2
;----------------------------------------------------------------------
; 180 | static int order = 1;                                                  
;----------------------------------------------------------------------
	.sym	_SUM_R,-4, 5, 1, 32
	.sym	_SUM_I,-6, 5, 1, 32
	.sym	_sum,-8, 5, 1, 32
	.sym	_i,-9, 14, 1, 16
	.sym	_j,-10, 14, 1, 16
	.sym	_N,-11, 14, 1, 16
	.sym	_temp,-12, 14, 1, 16
	.sym	_temp_r,-13, 4, 1, 16
	.sym	_temp_i,-14, 4, 1, 16
        ADDB      SP,#14
	.line	4
;----------------------------------------------------------------------
; 181 | long int SUM_R=0;                                                      
;----------------------------------------------------------------------
        MOVB      ACC,#0
        MOVL      *-SP[4],ACC           ; |181| 
	.line	5
;----------------------------------------------------------------------
; 182 | long int SUM_I=0;                                                      
; 183 | long int sum;                                                          
; 184 | unsigned int i,j,N,temp;                                               
; 185 | int temp_r,temp_i;                                                     
;----------------------------------------------------------------------
        MOVL      *-SP[6],ACC           ; |182| 
	.line	10
;----------------------------------------------------------------------
; 187 | if (order == 0)                                                        
;----------------------------------------------------------------------
        MOVW      DP,#_order$2
        MOV       AL,@_order$2          ; |187| 
        BF        L27,NEQ               ; |187| 
        ; branch occurs ; |187| 
	.line	12
;----------------------------------------------------------------------
; 189 | for (i=0;i<6;i++)                                                      
;----------------------------------------------------------------------
        MOV       *-SP[9],#0            ; |189| 
        MOV       AL,*-SP[9]            ; |189| 
        CMPB      AL,#6                 ; |189| 
        B         L26,HIS               ; |189| 
        ; branch occurs ; |189| 
L23:    
	.line	14
;----------------------------------------------------------------------
; 191 | sum = 0;                                                               
;----------------------------------------------------------------------
        MOVB      ACC,#0
        MOVL      *-SP[8],ACC           ; |191| 
	.line	15
;----------------------------------------------------------------------
; 192 | for (j=1;j<19;j++)                                                     
;----------------------------------------------------------------------
        MOVB      AL,#1                 ; |192| 
        CMPB      AL,#19                ; |192| 
        MOV       *-SP[10],AL           ; |192| 
        B         L25,HIS               ; |192| 
        ; branch occurs ; |192| 
L24:    
	.line	17
;----------------------------------------------------------------------
; 194 | HAR_RATE[i][j] = (long)HAR_REAL[i][j] * 1000 / HAR_REAL[i][0];         
;----------------------------------------------------------------------
        MOV       T,#19                 ; |194| 
        MOVL      XAR4,#_HAR_REAL       ; |194| 
        MPYU      ACC,T,*-SP[9]         ; |194| 
        ADDL      XAR4,ACC
        MOVU      ACC,*+XAR4[0]
        MOVL      *-SP[2],ACC           ; |194| 
        MOVZ      AR6,*-SP[10]          ; |194| 
        MOV       T,#19                 ; |194| 
        MOVL      XAR4,#_HAR_REAL       ; |194| 
        MPYU      ACC,T,*-SP[9]         ; |194| 
        ADDU      ACC,AR6               ; |194| 
        ADDL      XAR4,ACC
        MOV       T,#1000               ; |194| 
        MPYU      ACC,T,*+XAR4[0]       ; |194| 
        FFC       XAR7,#L$$DIV          ; |194| 
        ; call occurs [#L$$DIV] ; |194| 
        MOVZ      AR7,*-SP[10]          ; |194| 
        MOV       T,#19                 ; |194| 
        MOVL      XAR6,ACC              ; |194| 
        MPYU      ACC,T,*-SP[9]         ; |194| 
        ADDU      ACC,AR7               ; |194| 
        MOVL      XAR4,#_HAR_RATE       ; |194| 
        ADDL      XAR4,ACC
        MOV       *+XAR4[0],AR6         ; |194| 
	.line	18
;----------------------------------------------------------------------
; 195 | sum += HAR_RATE[i][j] * HAR_RATE[i][j];                                
;----------------------------------------------------------------------
        MOVZ      AR6,*-SP[10]          ; |195| 
        MOV       T,#19                 ; |195| 
        MPYU      ACC,T,*-SP[9]         ; |195| 
        MOVL      XAR5,#_HAR_RATE       ; |195| 
        ADDU      ACC,AR6               ; |195| 
        MOV       T,#19                 ; |195| 
        MOVL      XAR4,#_HAR_RATE       ; |195| 
        ADDL      XAR4,ACC
        MPYU      ACC,T,*-SP[9]         ; |195| 
        ADDU      ACC,AR6               ; |195| 
        ADDL      XAR5,ACC
        MOV       T,*+XAR5[0]           ; |195| 
        MPY       ACC,T,*+XAR4[0]       ; |195| 
        MOVU      ACC,AL
        ADDL      ACC,*-SP[8]           ; |195| 
        MOVL      *-SP[8],ACC           ; |195| 
	.line	19
        INC       *-SP[10]              ; |196| 
        MOV       AL,*-SP[10]           ; |196| 
        CMPB      AL,#19                ; |196| 
        B         L24,LO                ; |196| 
        ; branch occurs ; |196| 
L25:    
	.line	20
;----------------------------------------------------------------------
; 197 | HAR_RATE[i][0] = SQRT_INT(sum);                                        
;----------------------------------------------------------------------
        MOVL      ACC,*-SP[8]           ; |197| 
        LCR       #_SQRT_INT            ; |197| 
        ; call occurs [#_SQRT_INT] ; |197| 
        MOV       T,#19                 ; |197| 
        MOVZ      AR6,AL                ; |197| 
        MOVL      XAR4,#_HAR_RATE       ; |197| 
        MPYU      ACC,T,*-SP[9]         ; |197| 
        ADDL      XAR4,ACC
        MOV       *+XAR4[0],AR6         ; |197| 
	.line	21
        INC       *-SP[9]               ; |198| 
        MOV       AL,*-SP[9]            ; |198| 
        CMPB      AL,#6                 ; |198| 
        B         L23,LO                ; |198| 
        ; branch occurs ; |198| 
L26:    
	.line	22
;----------------------------------------------------------------------
; 199 | HAR_FINISH = 1;                                                        
;----------------------------------------------------------------------
        MOVW      DP,#_HAR_FINISH
        MOV       @_HAR_FINISH,#1       ; |199| 
	.line	23
;----------------------------------------------------------------------
; 200 | BUFF_RDY = 0;                                                          
;----------------------------------------------------------------------
        MOV       @_BUFF_RDY,#0         ; |200| 
	.line	24
;----------------------------------------------------------------------
; 202 | else                                                                   
;----------------------------------------------------------------------
        B         L35,UNC               ; |201| 
        ; branch occurs ; |201| 
L27:    
	.line	27
;----------------------------------------------------------------------
; 204 | for (i=0;i<3;i++)               // 电压                                
;----------------------------------------------------------------------
        MOV       *-SP[9],#0            ; |204| 
        MOV       AL,*-SP[9]            ; |204| 
        CMPB      AL,#3                 ; |204| 
        B         L31,HIS               ; |204| 
        ; branch occurs ; |204| 
L28:    
	.line	29
;----------------------------------------------------------------------
; 206 | for(N=0;N<64;N++)                                                      
;----------------------------------------------------------------------
        MOV       *-SP[11],#0           ; |206| 
        MOV       AL,*-SP[11]           ; |206| 
        CMPB      AL,#64                ; |206| 
        B         L30,HIS               ; |206| 
        ; branch occurs ; |206| 
L29:    
	.line	31
;----------------------------------------------------------------------
; 208 | temp = N*order;                                                        
;-----------------------------------

⌨️ 快捷键说明

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