pre_zero.asm

来自「利用G.723协议在DSP实现音频信号的压缩与解压缩实验」· 汇编 代码 · 共 59 行

ASM
59
字号

;------------------------------------------------------------------
;/*
; * predictor_zero()
; *
; * computes the estimated signal from 6-zero predictor.
; *
; */
;-------------------------------------------------------------------------
;short
;predictor_zero(
;	struct g723_state *state_ptr)
;{
;	int		i;
;	short		sezi;
;
;	sezi = fmult(state_ptr->b[0] >> 2, state_ptr->dq[0]);
;	for (i = 1; i < 6; i++)			/* ACCUM */
;		sezi += fmult(state_ptr->b[i] >> 2, state_ptr->dq[i]);
;	return (sezi);
;}
;/*
;-------------------------------------------------------------------
     ;AR6->sezi, AR7=state_ptr
             .title   "pre_zero.asm"
             .include "g723_global.asm"
             .include "g723tab_h.asm"
             .include "g723_stat.asm"
             
             .text
predictor_zero:
     mvmm   AR7, AR4
     mar    *+AR4(b)       ; *AR7 = state_ptr->b[0]
     ld     *AR4+, -2, A   ; A = state_ptr->b[0] >> 2
     mvmm   AR7, AR5
     mar    *+AR5(dq)      ; *AR5 = state_ptr->dq[0]
     ld     *AR5+, B       ; B = state_ptr->dq[0]
                           ; A = state_ptr->b[0] >> 2     
                          
     call   fmult          ;返回值sezi=A
    
     stl    A, *AR6
     stm    #5-1, AR3
accum:
     pshm   AR3  
      
     ld     *AR5+, B       ;B = state_ptr->dq[i]
     calld   fmult          ;返回值sezi = A
     ld     *AR4+, -2, A   ;A=state_ptr->b[i] >> 2
     
     add    *AR6, A
    
     popm   AR3
     stl    A, *AR6
     
     banz   accum, *AR3-
     ret   ;*AR6=sezi  AR7=state_ptr

             .end

⌨️ 快捷键说明

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