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

📄 ltp_cortexm3.s

📁 基于 STM32 PCM语音编/解码代码
💻 S
字号:
   SECTION .text:CODE(2)
   EXPORT  inner_prod
   
   

#define x       R0    // input array x[]
#define c       R1    // input array c[]
#define N       R2    // number of samples (a multiple of 4) // 40 samples: the lpcsize == 40 for narrowband mode, submode3
#define acc     R3    // accumulator
#define sum     R6    // sum
#define x_0     R4    // elements from array x[]
#define x_1     R5
#define c_0     R7    // elements from array c[]
#define c_1     R8





inner_prod

    PUSH    {r4-r8, lr}
    MOV     sum, #0
        
Loop
        
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc     
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc       
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc       
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc       
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc       
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6
    
    MOV     acc, #0
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    LDRSH   x_0, [x], #2
    LDRSH   c_0, [c], #2
    MLA     acc, x_0, c_0, acc        
    LDRSH   x_1, [x], #2
    LDRSH   c_1, [c], #2
    MLA     acc, x_1, c_1, acc        
    ADD     sum,sum,acc,ASR #6		
    MOV     r0, sum
    
    POP   {r4-r8, pc}
    END

⌨️ 快捷键说明

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