dsp指令

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、exam.asm 源文件正文:

;/********************************************************/

;/* exam.asm */

;/* TMS320C54X DSP数据寻址方式的例子 */

;/*********************************************************/

;定义符号常量

T .set 00EH

BRC .set 01AH

SWWSR .set 028H

CLKMD .set 058H

DAT0 .set 000H

DAT1 .set 001H

DAT2 .set 002H

DAT3 .set 003H

DDAT0 .set 02104H

DDAT1 .set 02105H

DDAT2 .set 02106H

DDAT3 .set 03107H

PDAT0 .set 01f00H

PDAT1 .set 01f01H

PDAT2 .set 01f02H

PDAT3 .set 01f03H

;在当前文件中定义一个符号,可以被其它文件使用。

.def _main

.def _c_int00

.def _DELAY

;段定义伪指令,此段存放程序代码。

.text

;初始化程序

_c_int00:

RPT #1000H ;延时。重复指令。重复执行下一条指令k+1次

NOP ;空指令。

LD #40H,DP ;设置DP指针。加载指令。

STM #4000H ,SP ;设置SP指针。存储指令。

ADDM #7FFH,*(SP) ;长立即数加至累加器。加法指令。

ANDM #0FFFEH,*(SP) ;操作数和长立即数相与。与逻辑运算指令。

SSBX INTM ;禁止中断。INTM是ST1中的全局中断屏蔽位。

;对INTM置1。混合程序控制指令。

STM #07FFFH,SWWSR ;置外部等待时间

STM #06004H,CLKMD ;设置CLKMD。

LD #0FFFFH,A ;立即数加载至目的累加器A

CALL _DELAY ;子程序调用。

STM #087FBH,CLKMD ;设置CLKMD。

LD #0FFFFH,A ;立即数加载至目的累加器A

CALL _DELAY ;子程序调用。

B _main ;无条件分支转移。

;主程序

_main:

RSBX CPL ;DSP初始化。对状态寄存器ST1中的编辑方式位清0。

;混合程序控制指令。

NOP

NOP

;立即数寻址:指令中有一个固定的立即数。

LD #1234h,A ;;立即数寻址。加载指令。

;绝对地址寻址:指令中有一个固定的地址(16位)。

ST #5678h,*(DDAT1) ;;DDAT1=0X2105。存储长立即数。绝对地址寻址。

NOP

NOP

NOP

ST #5679h,*(PDAT1) ;存储长立即数。

;累加器寻址:把累加器的内容作为地址去访问程序存储器中的一个单元。

LD #PDAT1,A ;累加器寻址PDAT1=0X1F01

READA DAT2 ;;DAT2=0X2002。混合加载和存储指令。

;按累加器A寻址读程序存储器并存入数据存储器

NOP

NOP

NOP

;

;直接寻址:指令编码中含有的7位地址与DP或SP一起合成数据存储器中操作数的实际地址。 ;CPL=0,数据存储器地址的7位与DP中的9位字段相连组成16位的数据存储器地址。

ST #3210h,DAT3 ;直接寻址(DP指针)DAT3=0X2003

NOP

NOP

;CPL=1,数据存储器地址的7位与SP中的9位字段相连组成16位的数据存储器地址。 SSBX CPL ;CPL=1

NOP

NOP

NOP

ST #9876h,DAT3 ;直接寻址(SP指针)SP=0X47FE+3

NOP

NOP

NOP

RSBX CPL ;CPL=0

NOP

NOP

NOP

;间接寻址:通过辅助寄存器寻址。

STM #DDAT3,AR0 ;间接寻址DDAT3=0X3107。长立即数存储到MMR。

ST #9876h,*AR0 ;存储长立即数。

NOP

NOP

NOP

;绝对地址寻址:指令中有一个固定的地址(16位)。

;数据存储器(DMAD)寻址。

MVDK DAT0,DDAT0 ;绝对地址(dmad)寻址DAT0=0X2000,DDAT0=0X2104

;数据存储器内部指定地址传送数据。

MVKD DDAT1,DAT1 ;DDAT1=0X2105,DAT1=0X2001

;数据存储器内部指定地址传送数据。

NOP

NOP

NOP

;程序存储器(PMAD)寻址。

MVDP DAT0,PDAT0 ;绝对地址(pmad)寻址PDAT0=0X1F00

MVDP DAT1,PDAT1 ;数据存储器向程序存储器传送数据。

相关文档
最新文档