📄 main_nonbios.asm
字号:
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 + -