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

📄 iir16i.asm

📁 DSP的实验测试程序
💻 ASM
字号:
;
;File name:       IIR16IA.ASM                  
;                    
;Originator:    Digital Control Systems Group
;               Texas Instruments
;
;Description:  
;===========
;Header file containing the initialisation routine for IIR5BIQ16 module
;===================================================================
; History:
;-------------------------------------------------------------------
;17-2-2000  Release Rev 1.0                                                  
;-------------------------------------------------------------------
                .def    _IIR5BIQ16_init    ; IIR5BIQ16 Module Initialisation
               
__iir5biq16_frs .set    00001h          ; Local frame size for this routine                      
                      
        
_IIR5BIQ16_init:
            POPD    *+                      ; Store the Return Address in stack
            SAR     AR0,*+                  ; Store the Caller's Frame Pointer
            SAR     AR1,*
            LAR     AR0,#__iir5biq16_frs        
            LAR     AR0,*0+,AR2             ; Create Local frame for sin function
                                     
            LAR     AR2,#0FFFDh             ; AR2=-3
            MAR     *0+                     ; Modify AR2 to point to the input argument
            LAR     AR2,*                   ; ARP=AR2, AR2=coeff_ptr
            
            ADRK    #2                      ; ARP=AR2, AR2->nbiq
            LACL    *-,AR0                  ; ARP=AR0, AR0=FP, AR2->dbuffer_ptr, ACC=nbiq 
            SFL                             ; ACC=2*nbiq
            SUB     #1                      ; ACC=(2*nbiq)-1
            SACL    *,AR2                   ; ARP=AR2, AR2->dbuffer_ptr, *FP=(2*nbiq)-1
            ADDS    *                       ; ARP=AR2, AR2->dbuffer_ptr, ACC=dbuffer_ptr+(2*nbiq)-1
            LAR     AR3,*                   ; ARP=AR2, AR2->dbuffer_ptr, AR3=dbuffer_ptr
            SACL    *,AR0                   ; ARP=AR0, AR0=FP,dbuffer_ptr=dbuffer_ptr +(2*nbiq)-1
            LAR     AR4,*,AR3               ; APR=AR3, AR3=dbuffer_ptr, AR4=(2*nbiq)-1
            LACL    #0
            
clrloop1:   SACL    *+,0,AR4                ; Clear the delay buffer
            BANZ    clrloop1,*-,AR3
                
            MAR     *,AR2                   ; ARP=AR2, AR2->dbuffer_ptr
            ADRK    #2                      ; ARP=AR2, AR2->input
            SACL    *                       ; ARP=AR2, AR2->input, input=0
            ADRK    #3                      ; ARP=AR2, AR2->output
            SACL    *-                      ; ARP=AR2, AR2->qfmat, output=0
            LACL    #15                     ; ACC=15
            SUB     *                       ; ARP=AR2, AR2->qfmat,ACC=15-qfmat
            SACL    *,0,AR1                 ; ARP=AR1, qfmat=15-qfmat
     
            SBRK    #(__iir5biq16_frs+1)    ; Clear the local frame
            LAR     AR0,*-                  ; Retrive Caller's frame pointer
            PSHD    *                       ; Push the return address to TOS
            RET                             ; Return to the caller
           

⌨️ 快捷键说明

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