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

📄 test_ma3.asm

📁 TI C54写的G729代码,视线8kbps高质量语音编码,汇编优化
💻 ASM
字号:
;================================================================
;  File Name
;  ----------
;  TEST_MAX3.ASM
;
;  Brief Description of the Code:
;  ------------------------------
;  Test around max3
;
;  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_around_lag_max_3

param_lag_max   .tag     Str_Lag_max

		.asg     "Addr_lag_max_buf", max
        .asg     "Addr_lag_max_buf+2", inv_energy 
		.asg     "AR1", p_max

		.asg     "AR4", pSig
		.asg     "AR5", pSig1

        .asg     "Addr_lag_max_buf",         max
        .asg     "ptr_wsp",                  signal
        .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


		.asg     "AR4", pTemp
		.asg     "AR5", pMax
;----------------------
;Test around lag max3
;----------------------

test_around_lag_max_3:

        LD      *(max), 16, B
        ADD     *(max+1), 1, B
        MVDM    p_max, AR0             ; i = t3
        STM     #scal_sig+PIT_MAX, pSig
        MAR     *AR0+                  ; AR0 = t3+1
        MVMM    pSig, pSig1
        LD      #L_FRAME, 0, A         
        MAR     *pSig1-0                ; p1 = &scal_sig[-(i+1)]

        ROR     A
        SUB     #1, A
        STLM    A, AR6
        LD      #0, 0, A

C1:             MAC     *pSig, *pSig1, A
                MAR     *+pSig(2)        ; p += 2
                MAR     *+pSig1(2)       ; p1 += 2
                BANZ    C1, *AR6-         

        SAT     A
        MAX     B
        STM     #scal_sig+PIT_MAX, pSig ; pSig -> scal_sig[0]
        BC      P1, C
        MVMM    AR0, p_max     ; AR1(p_max) = i+1


P1:
        MAR     *+AR0(-2)                ; AR0 = t3-1
        MVMM    pSig, pSig1
        LD      #L_FRAME, 0, A
        MAR     *pSig1-0                 ; p1 = &scal_sig[-i+1]
        ROR     A
        SUB     #1, A
        STLM    A, AR6
        LD      #0, 0, A

C2:             MAC     *pSig, *pSig1, A
                MAR     *+pSig(2)         ; p += 2
                MAR     *+pSig1(2)        ; p1 += 2
                BANZ    C2, *AR6-         


        SAT     A
        MAX     B
        NOP
        BC      P2, C

        MVMM    AR0, p_max     ; AR1(p_max) = i-1

P2:

        LD      #0, DP
        ST      #max, pTemp
        STL     B, -16, *pTemp
        LD      *pTemp+, 15, A
        LD      B, -1, B
        SUB     A, B
        STL     B, *pTemp


        RET

⌨️ 快捷键说明

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