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

📄 acelp_ca_asm.asm

📁 g.729汇编手工优化
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        MAC       *(AL), B              ; |185| 

;----------------------------------------------------------------------
; 186 | *p0-- = extract_h(cor);                                                
;----------------------------------------------------------------------
        LD        B,A                   ; |186| 
        SFTL      A,#-16,A              ; |186| 
        STL       A,*AR5-               ; |186| 
;----------------------------------------------------------------------
; 193 | l_fin_sup = MSIZE-1;                                                   
; 194 | l_fin_inf = l_fin_sup-(Word16)1;                                       
; 195 | ldec = NB_POS+1;                                                       
; 197 | ptr_hd = h;                                                            
;---------------------------------------------------------------------- 
L8:    
;----------------------------------------------------------------------
; 198 | ptr_hf = ptr_hd + 1;                                                   
;----------------------------------------------------------------------
        ;RSBX      OVM
        LD        *SP(51),A
        ADD       #1,A,A
        STL       A,*SP(53)
        LD        *SP(48),A
        ADD       #1,A,A
        STL       A,*SP(54)
        LD        *SP(44),A
        ADD       #1,A,A
        STL       A,*SP(42)
        MVMM      SP,AR6
        LD        *SP(47),A
        SUB       #1,A,A
        STL       A,*SP(43)
        MAR       *+AR6(#3)

;----------------------------------------------------------------------
; 200 | for(k=0; k<NB_POS; k++) {                                              
;----------------------------------------------------------------------
        STM       #7,AR7
        STM       #0,BK
L9:    
;----------------------------------------------------------------------
; 202 | p3 = rri2i3 + l_fin_sup;                                               
;----------------------------------------------------------------------
        MVDK      *SP(53),*(AR5)
;----------------------------------------------------------------------
; 203 | p2 = rri1i2 + l_fin_sup;                                               
;----------------------------------------------------------------------
        MVDK      *SP(54),*(AR1)
;----------------------------------------------------------------------
; 204 | p1 = rri0i1 + l_fin_sup;                                               
;----------------------------------------------------------------------
        MVDK      *SP(42),*(AR2)
;----------------------------------------------------------------------
; 205 | p0 = rri0i4 + l_fin_inf;                                               
; 207 | cor = 0;                                                               
; 208 | ptr_h1 = ptr_hd;                                                       
;----------------------------------------------------------------------
        MVDK      *SP(43),*(AR0)
;----------------------------------------------------------------------
; 209 | ptr_h2 =  ptr_hf;                                                      
;----------------------------------------------------------------------
        MVMM      AR6,AR4

        LD        #0,A
        DST       A,*SP(56)            

        MVMM      SP,AR3
        MAR       *+AR3(#2)

;----------------------------------------------------------------------
; 211 | for(i=k+(Word16)1; i<NB_POS; i++ ) {                                   
;----------------------------------------------------------------------
        ;SSBX      SXM
        LD        *(BK),B               ; |211| 
        SUB       #7,B,B                ; |211| 
        BC        L11,BGEQ              ; |211| 

        LDM       BK,A
        LD        #6,B
        SUB       A,B
        STLM      B,BRC
        SSBX      OVM
        NOP
        RPTB      L11-1
L10:    
;----------------------------------------------------------------------
; 213 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;ORM       #2,*(PMST)
        ;SSBX      FRCT
        ;SSBX      OVM
        ;ORM       #2,*(PMST)
        NOP
        MAC       *AR4+, *AR3+, A, A    ; |213| 
;----------------------------------------------------------------------
; 214 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        ;SFTA      A,8                   ; |214| 
        ;SSBX      OVM
        ;SFTA      A,-8                  ; |214| 
        MAC       *AR4+, *AR3+, A, A    ; |214| 
        DST       A,*SP(56)             ; |214| 
;----------------------------------------------------------------------
; 215 | *p3 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,B              ; |215| 
        STL       B,*AR5                ; |215| 
;----------------------------------------------------------------------
; 217 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;SSBX      OVM
        NOP
        MAC       *AR4+, *AR3+, A, A    ; |217| 
;----------------------------------------------------------------------
; 218 | *p2 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        LD        A,B
        SFTL      B,#-16,B              ; |218| 
        STL       B,*AR1                ; |218| 
;----------------------------------------------------------------------
; 220 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        ;SFTA      A,8                   
        ;SSBX      OVM
        ;SFTA      A,-8                  
        MAC       *AR4+, *AR3+, A, A    

;----------------------------------------------------------------------
; 221 | *p1 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        LD        A,B
        SFTL      B,#-16,B              
        STL       B,*AR2                

;----------------------------------------------------------------------
; 223 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        ;SFTA      A,8                   
        ;SSBX      OVM
        ;SFTA      A,-8                  
        MAC       *AR4+, *AR3+, A, A    
        DST       A,*SP(56)             

;----------------------------------------------------------------------
; 224 | *p0 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        LD        A,B
        SFTL      B,#-16,B              ; |224| 
        STL       B,*AR0                ; |224| 

;----------------------------------------------------------------------
; 226 | p3 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR5(#-9)
;----------------------------------------------------------------------
; 227 | p2 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR1(#-9)
;----------------------------------------------------------------------
; 228 | p1 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR2(#-9)
;----------------------------------------------------------------------
; 229 | p0 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR0(#-9)

L11:    
;----------------------------------------------------------------------
; 231 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;ORM       #2,*(PMST)
        ;SSBX      FRCT
        ;SSBX      OVM
        ;ORM       #2,*(PMST)
        NOP
        MAC       *AR4+, *AR3+, A, A    ; |231| 
;----------------------------------------------------------------------
; 232 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        ;SFTA      A,8                   ; |232| 
        ;SSBX      OVM
        ;SFTA      A,-8                  ; |232| 
        MAC       *AR4+, *AR3+, A, A    ; |232| 

;----------------------------------------------------------------------
; 233 | *p3 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        LD        A,B
        SFTL      B,#-16,B              ; |233| 
        STL       B,*AR5                ; |233| 
;----------------------------------------------------------------------
; 235 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        ;SFTA      A,8                   ; |235| 
        ;SSBX      OVM
        ;SFTA      A,-8                  ; |235| 
        MAC       *AR4+, *AR3+, A, A    ; |235| 

;----------------------------------------------------------------------
; 236 | *p2 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        LD        A,B
        SFTL      B,#-16,B              ; |236| 
        STL       B,*AR1                ; |236| 
;----------------------------------------------------------------------
; 238 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        ;SFTA      A,8                   ; |238| 
        ;SSBX      OVM
        ;SFTA      A,-8                  ; |238| 
        MAC       *AR4, *AR3, A, A      ; |238| 
        DST       A,*SP(56)             ; |238| 

;----------------------------------------------------------------------
; 239 | *p1 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |239| 
        STL       A,*AR2                ; |239| 

;----------------------------------------------------------------------
; 241 | l_fin_sup -= NB_POS;                                                   
;----------------------------------------------------------------------
        ;RSBX      OVM
        LD        *SP(53),A
        ADD       #-8,A
        STL       A,*SP(53)
        LD        *SP(54),A
        ADD       #-8,A
        STL       A,*SP(54)
        LD        *SP(42),A
        ADD       #-8,A
        STL       A,*SP(42)

;----------------------------------------------------------------------
; 242 | l_fin_inf--;                                                           
;----------------------------------------------------------------------
        LD        *SP(43),A
        SUB       #1,A
        STL       A,*SP(43)

;----------------------------------------------------------------------
; 243 | ptr_hf += STEP;                                                        
;----------------------------------------------------------------------
        MAR       *+AR6(#5)
;----------------------------------------------------------------------
; 250 | ptr_hd = h;                                                            
;----------------------------------------------------------------------
        MAR       *AR7-
        LDM       BK,A
        ADD       #1,A

⌨️ 快捷键说明

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