云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > DSP实验报告2(精)

DSP实验报告2(精)

  • 62 次阅读
  • 3 次下载
  • 2025/12/2 20:20:11

.def _exp2b_2 .ref _Xi .text

_exp2b_2

; Direct addressing

btstclr #14,*(ST1),TC1 ; Turn off CPL bits for direct addressing mode bclr C54CM

amov #_Xi,XDP ; Load direct addressing data-page pointer .dp _Xi

mov #9,@_Xi ; Direct addressing mode

mov #3,@_Xi+1 ; Initialize Xi[8]={9,3,2,0,1,9,7,1} mov #2,@_Xi+2 mov #0,@_Xi+3 mov #1,@_Xi+4 mov #9,@_Xi+5 mov #7,@_Xi+6 mov #1,@_Xi+7 xcc continue,TC1

bset CPL ; Turn CPL bit back on continue ret .end

④ 编辑如下汇编程序exp2b_3.asm,采用间接寻址实现Ai 和X 的点乘。并保存到c:\\ti\\myprojects\\xxx\\Experiment2\\目录。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * exp2b_3: Indirect Addressing Mode

* * * * * * * * * * * * * * * * * * * * * * * * * * * .def _exp2b_3 .text

_exp2b_3

; Indirect addressing mpym *AR0+,*AR1+,AC0 add AC1,AC0

mpym *AR0+,*AR1+,AC1 add AC1,AC0

mpym *AR0+,*AR1+,AC1 add AC1,AC0

mpym *AR0+,*AR1+,AC1 add AC1,AC0

mpym *AR0+,*AR1+,AC1 add AC1,AC0

mpym *AR0+,*AR1+,AC1 add AC1,AC0

mpym *AR0+,*AR1+,AC1

add AC1,AC0

mpym *AR0+,*AR1+,AC1 add AC1,AC0 mov AC0,T0 ret .end

⑤ 编辑如下汇编程序exp2b_4.asm,采用间接寻址,使用并行指令和重复指令提高代码的效率, 减少代码长度。并保存到c:\\ti\\myprojects\\xxx\\Experiment2\\目录。

* * * * * * * * * * * * * * * * * * * * * * * * * * * * exp2b_4: Paralle Processing

* * * * * * * * * * * * * * * * * * * * * * * * * * * .def _exp2b_4 .text

_exp2b_4

; Indirect addressing with paralle processing mpym *AR0+,*AR1+,AC0 || rpt #6

macm *AR0+,*AR1+,AC0 mov AC0,T0 ret .end

⑥ 在c:\\ti\\myprojects\\xxx\\Experiment2\\目录下建立工程exp2b,将link.cmd、exp2b.c、exp2b_1.asm、exp2b_2.asm、exp2b_3.asm 和exp2b_4.asm 加入工程,编译、连接工程,并下载exp2b.out。

⑦ 在memory watch 窗口观察Ai 和Xi 的初始化值,在CPU 寄存器窗口观察点乘的计算过程。

⑧ 对exp2b_3.asm 和exp2b_4.asm 的性能进行分析。

五、 实验报告

1、简述C 和汇编混合编程中的参数是如何传递的。

① C 和汇编混合编程中有 C程序变量与汇编程序变量的共用问题。为了使程序更易于接口和维护,可以在汇编程序中引用与C程序共享的变量:

.ref_to_dce_num,_to-dte_num,_to_dce_buff,_to_dte_buff 在汇编程序中引用而在C程序可直接定义的变量:

unsigned char to_dte_buff[BUFF_SIZE]; //DSP发向PC机的数据 int to_dte_num; //缓冲区中存放的有效字节数

int to_dte_store; //缓冲区的存放指针

int to_dte_read; //缓冲区的读取指针

这样经过链接就可以完成对应。

② C 和汇编混合编程中有程序入口问题。在C程序中,程序的入口是main()函数。而在汇编程序中其入口由*.cmd文件中的命令决定,如:-e main_start;程序入口地址为 main _start。这样,混合汇编出来的程序得不到正确结果。因为C到ASM的汇编有默认的入口c-int00,从这开始的一段程序为C程序的运行做准备工作。这些工作包括初始化变量、设置栈指针等,相当于系统壳不能跨越。这时可在*.cmd文件中去掉语句:-e main_start。如仍想执行某些汇编程序,可以C函数的形式执行,如:

main_start(); //其中含有其他汇编程序

但前提是在汇编程序中把_main_start作为首地址,程序以rete结尾(作为可调用的函数)的程序段,并在汇编程序中引用_main_start,即.ref _main_start。

2、对本次实验作出小结。

实验2中,建立了两个工程;并用汇编语言编程实现了一个可被C 程序调用的例程。通

过实验,粗略了解了DSP 的寻址方式以及DSP 的汇编语言与C 语言的混合编程。

搜索更多关于: DSP实验报告2(精) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

.def _exp2b_2 .ref _Xi .text _exp2b_2 ; Direct addressing btstclr #14,*(ST1),TC1 ; Turn off CPL bits for direct addressing mode bclr C54CM amov #_Xi,XDP ; Load direct addressing data-page pointer .dp _Xi mov #9,@_Xi ; Direct addressing mode mov #3,@_Xi+1 ; Initialize Xi[8]={9,3,2,0,1,9,7,1} mov #2,@_Xi+2 mov #0,@_Xi+3 mov #1,@_Xi+4 mov #9,@_Xi+5 mov #7,

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com