📄 test_mul.asm
字号:
;================================================================
; File Name
; ----------
; TEST_MUL.ASM
;
; Brief Description of the Code:
; ------------------------------
; Test for multiple
;
; Ref
; ------
; PITCH_A.C
;================================================================
; Str_Lag_max .struct
; ptr_signal .word 1
; lag_max .word 1
; lag_min .word 1
; ptr_cor_max .word 1
; Str_Lag_max_Len .endstruct
;----------------------------------------------------------------
; Buffer : Addr_lag_max_buf[2] at even boundary
;----------------------------------------------------------------
; Output : AR1 = p_max
; Modified Registers: AR4, AR5
;----------------------------------------------------------------
.mmregs
.include ../include/const.h
.include ../include/struct.h
.include ../include/ld8amem.h
.def test_multiple
param_lag_max .tag Str_Lag_max
.asg "Addr_pitch_ol_buf", scal_sig
.asg "scal_sig+PIT_MAX+L_FRAME", max3
.asg "max3+1", max2
.asg "max2+1", max1
.asg "max1+1", p_max3
.asg "p_max3+1", p_max2
.asg "p_max2+1", p_max1
;====================
;Test for multiple
;====================
test_multiple:
; if(abs(T2*2-T3)<5) max2 += max3 * 0.25
LD #param_lag_max, DP
ST #max2, param_lag_max.ptr_cor_max
MVDM param_lag_max.ptr_cor_max, AR5
LD *(p_max2), 1, A
SUB *(p_max3), A
NOP
SAT A
XC 1, ALT
NEG A ; A = abs(3*p_max2-p_max3)
SUB #5, A
LD *(max2), 16, B
XC 2, ALT
MAC *(max3), #8192, B
XC 2, ALT
STL B, -16, *AR5
; if(abs(T2*3-T3)<7) max2 += max3 * 0.25
LD *(p_max2), 1, A
ADD *(p_max2), A
SUB *(p_max3), A
NOP
SAT A
XC 1, ALT
NEG A ; A = abs(3*p_max2-p_max3)
SUB #7, A
SAT A
NOP
LD *(max2), 16, B
XC 2, ALT
MAC *(max3), #8192, B
XC 2, ALT
STL B, -16, *AR5
; if(abs(T1*2-T2)<5) max1 += max2 * 0.20
ST #max1, param_lag_max.ptr_cor_max
MVDM param_lag_max.ptr_cor_max, AR5
LD *(p_max1), 1, A
SUB *(p_max2), A
NOP
SAT A
XC 1, ALT
NEG A ; A = abs(2*p_max1-p_max2)
SUB #5, A
SAT A
LD *(max1), 16, B
XC 2, ALT
MAC *(max2), #6554, B
XC 2, ALT
STL B, -16, *AR5
; if(abs(T1*3-T2)<7) max1 += max2 * 0.20
LD *(p_max1), 1, A
ADD *(p_max1), A
SUB *(p_max2), A
NOP
SAT A
XC 1, ALT
NEG A ; A = abs(3*p_max1-p_max2)
SUB #7, A
SAT A
LD *(max1), 16, B
XC 2, ALT
MAC *(max2), #6554, B
XC 2, ALT
STL B, -16, *AR5
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -