华佗养生网
您的当前位置:首页DSP实验三

DSP实验三

来源:华佗养生网


机电113班 胡燕 2011012579

实验三 汇编的循环与分支

一、实验目的

1、了解DSP结构;

2、熟悉CCS开发环境;

3、熟悉TDB-C54X plus DSP实验箱的硬件环境;

4、掌握C54X plus汇编程序的循环与分支结构;

二、实验内容

1、C54X plus汇编初始化程序;

2、C54X plus数据区初始化程序;

3、C54X plus各种汇编循环源程序;

4、C54X plus各种汇编分支源程序;

三、实验要求

在数据区预留2个数据块,每块大小为1024字,分别为源数据块和目标数据块,将源数据块初始化为表1所示,在初始化程序中需用到循环和跳转指令,然后将源数据块复制到目标数据块,需用到跳转指令。运行程序,通过CCS→View→CPU Registers,观察各寄存器的值,通过CCS→View→Memory,观察片内各数据地址的值,上述各值应与源程序的结果一致。

四、实验代码

T .set 00EH

BRC .set 01AH

SWWSR .set 028H

CLKMD .set 058H

DDAT0 .set 02000H

DDAT2 .set 02400H

.def _main

.def _c_int00

.def _DELAY

.text

_c_int00:

RPT #1000H

NOP

LD #40H,DP

STM #4000H ,SP

ADDM #7FFH,*(SP)

ANDM #0FFFEH,*(SP)

SSBX INTM STM #07FFFH,SWWSR STM #06004H,CLKMD

LD #0FFFFH,A

;禁止中断

;置外部等待时间

CALL _DELAY

STM #087FBH,CLKMD

LD #0FFFFH,A

CALL _DELAY

B _main

_main: CALL INIT_DATA

LD #MOVE2,B

NOP

BACC B

_DELAY: STLM A,BRC

RPTB _DELAY1-1

NOP

NOP

NOP

NOP

_DELAY1:RET

INIT_DATA:

STM #DDAT0,AR2

RPTZ A,#07FFH

STL A,*AR2+

NOP

NOP

NOP

LD #0,A

STM #DDAT0,AR2

STM #3FFH,BRC

RPTB _INIT_DATA2-1

STL A,*AR2+

LDM AR2,B

AND #7,0,B

ADD #1,0,A

BC _INIT_DATA2-1,BNEQ

LDM AR2,B

AND #0FFF8H,0,A

AND #3FH,0,B

ADD #0F8H,0,A

XC 2,BEQ

AND #078H,0,A

XC 2,BEQ

ADD #8,0,A

NOP

_INIT_DATA2:

RET

MOVE2: STM #15,AR4

STM #DDAT2,AR3

STM #DDAT0,AR2

MOVE21:STM #7,BRC

PSHM AR3

RPTB MOVE22-1

RPT #7

MVDD *AR2+,*AR3+

ADDM #120,*(AR3)

NOP

MOVE22:POPM AR3

ADDM #8,*(AR3)

BANZ MOVE21,*AR4-

B $

五、实验结果

1、 STM #DDAT0,AR2 RPTZ A,#07FFH

描述从这个语句到_INIT_DATA2-1语句的功能

答:设置块重复的范围,从RPTB句后一句开始到_INIT_DATA2前一句作为块重复内容,重复次数为BRC次数3FFh次加1;块中嵌套一次分支转移,当满足B不等于0时,分支跳转至_INIT_DATA2的前一句,完成一次块重复,条件不满足时,连续执行程序,不进行跳转。

2、 STM #07FFFH,SWWSR 解释该语句实现的功能

答:YINWEI SWWSR中所有段设置值均为“1”,所以设置的延迟周期为7个。 实验总结

本次实验主要学习了块重复,寄存器的应用。本次实验需要整个来读懂程序,来处理

实验中的问题。本次实验主要了解到了DSP程序的基本构造,对教材第五章和第三张的内容更加了解。

本次实验过程中也遇见很多问题,刚接触完整的程序,对程序的整体把握不好,在老师的帮助下,我们小组都把实验过程中遇见的问题解决了。

因篇幅问题不能全部显示,请点此查看更多更全内容