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

📄 syn_filt.asm

📁 TI C54写的G729代码,视线8kbps高质量语音解码,汇编优化
💻 ASM
字号:
;==========================================================================
;  File Name
;  ----------
;  SYN_FIL.ASM
;
;  Brief Description of the Code:
;  ------------------------------
;  Synthesis filtering 1/A(z).
;
;  Ref
;  ------
;  FILTER.C (Syn_filt)
;==========================================================================
        .mmregs
        .include  ../include/const.h
        .include  ../include/tab_ld8a.h
        .include  ../include/ld8amem.h

        .text
        .def    Syn_filt1       ; Updata = 1
        .def    Syn_filt2       ; Updata = 1

        .def    Syn_filt3       ; Updata = 0

        .asg    "AR0", AR_Counter
        .asg    "AR1", pCounter
        .asg    "AR2", pBiQ12
        .asg    "AR3", pXn
        .asg    "AR4", pYn2
        .asg    "AR5", pYn

Syn_filt1:

	PSHM	AR7

        STM     #0, AR_Counter
        MVMM    pYn, pYn2                 ; Updata =1
        MAR     *+pYn2(#L_FRAME-1)        ; Modify pYn2
        STM     #M - 1, BRC
        STM     #M - 1, AR7
        MAR     *pYn-

        RPTB    EndLE10 - 1

                LD      *pXn+, 13, B

                MVMM    AR_Counter, pCounter
                NOP
                CMPM    *(pCounter), #0
                NOP
                BC      L01, TC
                MAR     *pCounter-
                RPT     *(pCounter)
                        MAS     *pBiQ12+, *pYn-, B

                MVMM    AR_Counter, pCounter
                NOP
                        MAR     *pCounter-
                RPT     *(pCounter)
                        MAR     *pYn+

L01:            MVMM    AR7, AR6
                NOP
                RPT     *(AR6)
                        MAS     *pBiQ12+, *pYn2-, B
                MAR     *+pBiQ12(#-M)
                MVMM    AR7, AR6
                NOP
                RPT     *(AR6)
                        MAR     *pYn2+

                MAR     *AR_Counter+
                MAR     *AR7-

                ADD     #1, 12, B
                LD      B, 3, B
                SAT     B
                STL     B, -16, *+pYn

EndLE10:


        SUB     #M + 1, A
        STLM    A, BRC
        STM     #M, BK

        RPTB   EndGT10 - 1

                LD      *pXn+, 13, A
                MVMM    pYn, pYn2        
                RPT     #M - 1
                        MAS     *pBiQ12+, *pYn2-, A
                MAR     *+pBiQ12(#-M)


                ADD     #1, 12, A
                LD      A, 3, A
                SAT     A
                STL     A, -16, *+pYn

EndGT10:
	POPM	AR7
        RET

Syn_filt2:
        MAR     *pYn-
        STM     #M - 1, BRC
        RPTB   EndLE20 - 1
                LD      *pXn+, 13, B
                MVMM    pYn, pYn2             ;Updata=1  Modify pYn2
                RPT     #M - 1
                        MAS     *pBiQ12+, *pYn2-, B
                MAR     *+pBiQ12(#-M)


                ADD     #1, 12, B
                LD      B, 3, B
                SAT     B
                STL     B, -16, *+pYn
EndLE20:

        SUB     #M + 1, A
        STLM    A, BRC
        STM     #M, BK

        RPTB   EndGT20 - 1

                LD      *pXn+, 13, A
                MVMM    pYn, pYn2
                RPT     #M - 1
                        MAS     *pBiQ12+, *pYn2-, A
                MAR     *+pBiQ12(#-M)

                ADD     #1, 12, A
                LD      A, 3, A
                SAT     A
                STL     A, -16, *+pYn


EndGT20:

        RET


Syn_filt3:

	PSHM	AR7

        MAR     *+pYn2(#M-1)                 ; Updata=0

        STM     #0, AR_Counter
        STM     #M - 1, BRC
        STM     #M - 1, AR7
        MAR     *pYn-

        RPTB    EndLE30 - 1
                LD      *pXn+, 13, B

                MVMM    AR_Counter, pCounter
                NOP
                CMPM    *(pCounter), #0
                NOP
                BC      L03, TC
                MAR     *pCounter-
                RPT     *(pCounter)
                        MAS     *pBiQ12+, *pYn-, B

                MVMM    AR_Counter, pCounter
                NOP
                MAR     *pCounter-
                RPT     *(pCounter)
                        MAR     *pYn+

L03:            MVMM    AR7, AR6
                NOP
                RPT     *(AR6)
                        MAS     *pBiQ12+, *pYn2-, B
                MAR     *+pBiQ12(#-M)
                RPT     *(AR6)
                        MAR     *pYn2+
                MVMM    AR7, AR6

                MAR     *AR_Counter+
                MAR     *AR7-

                ADD     #1, 12, B
                LD      B, 3, B
                SAT     B
                STL     B, -16, *+pYn

EndLE30:


        SUB     #M + 1, A
        STLM    A, BRC
        STM     #M, BK		

        RPTB   EndGT30 - 1

                LD      *pXn+, 13, A
                MVMM    pYn, pYn2
                RPT     #M - 1
                        MAS     *pBiQ12+, *pYn2-, A
                MAR     *+pBiQ12(#-M)


                ADD     #1, 12, A
                LD      A, 3, A
                SAT     A
                STL     A, -16, *+pYn

EndGT30:
	POPM	AR7
        RET


⌨️ 快捷键说明

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