DSP实验二基本算术运算-例4-1乘法累加.ppt
文本预览下载声明
实验要求 建立源文件 根据教材的例4-1、例4-8、例4-9建立文件(example.asm)、矢量文件(vectors.asm)及链接命令文件(example.cmd) 掌握用窗口查看运算结果的方法 .title example.asm ;为汇编源程序取名 .mmregs ;定义存储器映象寄存器 STACK .usect STACK,10h ;分配10个单元的堆栈空间 .bss a,4 ;为系数a分配4个单元的空间 .bss x,4 ;为变量x分配4个单元的空间 .bss y,1 ;为结果y 分配1个单元的空间 .def start ;定义标号start .data ;定义数据代码段 table: .word 1,2,3,4 ;在标号table开始的8个单元中 .word 8,6,4,2 ;为这8个单元赋初值 .text ;定义文本代码段 start: STM #0,SWWSR ;软件等待状态寄存器置0,不设等待 STM #STACK+10h,SP ;设置堆栈指针初值 STM #a,AR1 ;AR1 指向 a的地址 RPT #7 ;从程序存储器向数据存储器 MVPD table,*AR1+;重复传送 8个数据 CALL SUM ;调用 SUM 实现乘法累加和的子程序 end: B end ;循环等待 SUM: STM #a,AR3 ;将系数a的地址赋给AR3 STM #x,AR4 ;将变量x的地址赋给AR3 RPTZ A,#3 ;将A清0,并重复执行下条指令4次 MAC *AR3+,*AR4+,A ;执行乘法并累加,结果放在A中 STL A,@y ;将A的低字内容送结果单元y RET ;结束子程序 .end ;结束全部程序 * * * * * * * * * * * * * * * * * * * * * * * Reset vector for example.asm * * * * * * * * * * * * * * * * * * * * * * * * .title vectors.asm .ref start .sect .vectors B start .end vectors.obj example.obj -o example.out -m example.map MEMORY { PAGE 0: EPROM: org=0E000h, len=100h VECS: org=0FF80h, len=04h PAGE 1: SPRAM: org=0060h, len=20h DARAM: org=0080h, len=100h } SECTIONS { .text: EPROM PAGE 0 .data: EPROM PAGE 0 .bss: SPRAM PAGE 1 STA
显示全部