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

📄 fir.asm

📁 this a DSP program for FIR
💻 ASM
字号:
     .title  "fir.asm"
     .copy   "init.h"
H:   .equ  3F0h      ;存放滤波器系数的起始地址
X:   .equ  300h      ;存放输入数据的起始地址
Y:   .equ  2300h     ;存放滤波器输出数据的起始地址
XN:  .equ  380h      ;线性缓冲区
     .data 
     
INPUT	       .copy   "testdata.dat" ;模拟输入在数据存储区0x300 
OUTPUT         .sect   "output"       ;输出数据在数据区0x2000
               .space  128*16         ;K_FRAME_SIZE*16 ;
  ;h0=h10=000h,h1=h9=2FEh,h2=h8=675h,h3=h7=9B0h,h4=h6=0BF9h,h5=0CCDh
DH:  .word  000h,02FEh,0675h,09B0h,0BF9h,0CCDh
     .word  0BF9h, 09B0h, 0675h, 02FEh, 000h         ;滤波器系数 
     .text
START:  SOVM
      LARP  1
      LAR   AR1,#H
      RPT   #10
      BLDD  #DH,*+            ;将滤波器系数移至3f0h开始的单元中
      LAR   AR0,#380h         ;#XN
      ZAC
      MAR   *,AR0
      RPT   #10
      SACL  *+                 ;将存放N个样本的数据缓冲区清0
      LAR   AR1,#X
      LAR   AR3,#Y
      LAR   AR4,#127
NEXT:  SOVM
      LAR   AR5,#38Ah        ;N(11)个单元数据缓冲区的底部
      LAR   AR2,#H
      MAR   *,AR1
      LACC  *+
      LDP   #7
      SACL  XN               ;读入样本到数据缓冲区的顶部
      MAR   *,AR5
      ZAC
      LT    *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+
      APAC                    ;读取N个输入样本并进行N次乘法和累加
      LARP  3
      SACH  *+,2              ;保存滤波器输出,滤波结果右移14位
      LARP  4
      BANZ   NEXT
HERE:  B   HERE
       .end

⌨️ 快捷键说明

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