第三章 DSP的软件结构jhr.ppt

  1. 1、本文档共174页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 DSP的软件结构jhr

第三章 DSP的软件结构 Introduction 汇编语言程序编写方法 TMS320C54x的寻址方式 TMS320C54x指令的表示方法 TMS320C54x的指令系统 汇编伪指令 汇编程序语法 TMS320的汇编程序包含汇编指令(伪指令,assembler directives)、汇编语言指令(assembly language instructions)、宏指令(macro directives)和注释(comments)。 汇编程序源程序格式 [label][:] mnemonic [operand list] [;comment] [标号][:] 助记符 [操作数] [;注释] SYM1 .set 2 ;符号SYM1=2 Begin: LD #SYM1, AR1 ;将2装入AR1 汇编程序语法 所有的语句必须由语句标号、空格、*号或 ;号开头。 语句标号 由字母、数字、_、$组成,最多不超过32个字符,对大小写敏感,第一个字符不能是数字。后跟 :。 助记符 助记符不允许从第一列开始,否则被认为是语句标号。 操作数 操作数可以是常数、符号或表达式。当操作数多于一个时,用逗号分开。 汇编器允许指定常数、符号或表达式作为地址、立即数或间接地址。操作数前缀规定如下: #前缀:表示操作数为立即数。如: Label:ADD #123,B ;表示将操作数123(十进制)和累加器B中的内容相加 *前缀:操作数为间接地址。使用操作数的内容作为地址。如: Label:LD *AR4,A ;操作数*AR4为间接地址,将AR4中的内容作为地址,然后将该地址的内容装入到指定的累加器A 常数 二进制常数(如01B或01b) 八进制常数(如10Q或10q) 十进制常数(如23) 十六进制常数(如78H或78h) 字符常数(如‘A’或‘b’) 字符串(如“sample program”) 符号 符号用于作标号、常数和替代符号。符号名可长达200个字符,可由A-Z、a-z、0-9、$、_组成,且第一个字符不能是数字,符号对大小写敏感。符号仅在定义它的汇编程序中有效,除非用.global或.def伪指令声明为外部符号。 例: K .set 1024 表达式 表达式是一个常数、符号、或用算术运算符连接起来的常数或符号。表达式的值的范围为-32768到32767 例: X .set 50h sym1 .set 100h+X 可以用在表达式中的运算符 注释区 注释区可以从任何一列开始,可能包含ASCII字符和空格。注释打印在列表文件中,但不影响汇编工作。 TMS320C54x的寻址方式 立即寻址:指令中有一个固定的立即数; 绝对地址寻址:指令中有一个固定的地址(16位); 累加器寻址:按累加器的内容作为地址去访问程序存储器中的一个单元; 直接寻址:指令编码中含有的7位地址与DP或SP一起合成数据存储器中操作数的实际地址; 间接寻址:通过辅助寄存器寻址; 存储器映射寄存器寻址:修改存储器映射寄存器中的值,而不影响当前数据页面指针DP和当前堆栈指针SP的值; 堆栈寻址:把数据压入或弹出系统堆栈。 寻址指令中用到的缩写符号及其含义 立即寻址 短立即数寻址(单字指令) 立即寻址 立即寻址 长立即数寻址 立即寻址 绝对地址寻址 数据存储器地址(dmad)寻址: 用一个符号或一个数来确定数据空间中的一个地址 例: MVKD sample,*AR5 ;sample所代表的就是一个dmad MVKD 1000h,*AR5 ;将数据存储器1000h单元的数据传送到由AR5所指的存储单元中 。 1000h代表的是一个dmad 绝对地址寻址 程序存储器地址(pmad)寻址: 用一个符号或一个数来确定程序地址空间中的一个地址 例: MVPD table,*AR5 table 所代表的就是一个pmad 将程序存储器table地址单元中的内容复制到AR5寄存器所指向的数据存储单元中去。 绝对地址寻址 端口地址(PA)寻址 用一个符号或常数来确定I/O口地址 绝对地址寻址 *(lk)寻址 用一个符号或一个表示16位地址的长立即数来确定数据存储器中的一个地址 例: LD *(BUFFER),A ;把地址为BUFFER的数据单元中的数据装到AccA中 累加器寻址 用累加器中的数作为一个地址,可用来对存放数据的

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档