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

第7章 TMS320C5000 DSP芯片的汇编语言 7.1 引言 7.2 汇编语言源程序格式 7.3 汇编指令系统 7.4 寻址方式 7.5 小结 7.6 习题与思考题 7.1 引言 基于DSP的硬件结构,TI提供了完善的指令集来提高芯片的处理能力。 TMS320C5000系列芯片可采用两种不同的指令系统:助记符指令集和代数指令集。 以助记符指令集为重点,以C54x为例介绍DSP的汇编语言指令。 7.2 汇编语言源程序格式 [标号][:] 指令 [操作数列表] [ ; 注释] [ ]内的部分是可选项。 7.2 汇编语言源程序格式 须遵循以下格式: (1)语句必须以标号、空格、星号或分号开始; (2)标号为可选项,若要使用标号,则必须从第1列开始。标号长度最多为32个字符,由A~Z,a~z,0~9,_和$等组成,但第1个字符不能为数字。标号后可以跟一个冒号(:),但并不作为标号的一部分; (3)每个域必须由1个或多个空格分开,制表符等效于空格; (4)注释是可选项,开始于第1列的注释须用星号或分号(*或;)标示,但在其他列开始的注释前面只能标分号; 7.2 汇编语言源程序格式 (5)指令域一定不能从第1列开始,否则将被视为标号。指令域包括以下操作码之一:助记符指令(详见7.3节)、汇编伪指令(如.data,.set)、宏伪指令(如.var,.macro)和宏调用; (6)操作数域为操作数的列表,汇编器允许指定常数、符号或表达式作为地址、立即数或间接寻址。当操作数为立即数时,使用#符号作为前缀;操作数为间接寻址时,使用*符号作为前缀,将操作数的内容作为地址。 7.3 常见符号和伪指令 .func和.endfunc指明C函数的开始和终止; .block和.endblock指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪一行; .sym指明全局变量、局部变量或函数的符号调试信息。 7.4 汇编指令系统 4种基本类型的操作: (1)算术指令。包括加法、减法、乘法、乘累加、乘累减、32位操作数运算指令以及其他一些专用指令。 (2)逻辑指令。包括与、或、异或、移位和测试指令等。 (3)程序控制指令。包括跳转、调用、中断、返回、重复等程序控制指令。 (4)装载和存储指令。包括装载、存储以及并行装载和存储型的指令等。 7.5 寻址方式 TMS320C5000 DSP芯片的寻址方式分为数据寻址和程序寻址两大类。 7.5 寻址方式 1、数据寻址 立即数寻址:指令中包含有一个固定的数; 绝对地址寻址:指令中包含一个固定的地址; 累加器寻址:将累加器的内容作为地址去访问程序存储区单元; 直接寻址:数据存储区地址由基地址(DP或SP)和偏移地址组成;数据存储区地址的高9位由基地址提供,低7位由偏移地址提供; 7.5 寻址方式 1、数据寻址 间接寻址:将辅助寄存器中的内容作为地址去访问存储区; 存储区映射寄存器寻址:修改映射寄存器的内容而不影响当前的DP或SP值; 堆栈寻址:将数据压入或者弹出系统堆栈。 7.5 寻址方式 2、程序寻址 C54x通过程序地址总线PAB来对程序存储区进行访问。 程序地址产生逻辑(PAGEN)产生程序地址并将其放入程序地址总线PAB。 PAGEN包括6个寄存器:程序计数器PC、程序计数器扩展寄存器XPC、重复计数器RC、块重复计数器BRC、块重复起始寄存器RSA和块重复结束地址寄存器REA 7.5 寻址方式 7.6 小结 以助记符指令集为重点,详细介绍了TMS320C5000的指令。 对汇编语言源程序的格式和汇编指令进行了总体介绍。 重点讲解了TMS320C5000的寻址方式。 习题与思考题 (1)汇编语句格式包含哪几个部分?编写汇编语句需要注意哪些问题? (2)C54x的指令集包含了哪几种基本类型的操作? (3)C54x提供了哪些基本的数据寻址方式? (4)以DP和SP为基地址的直接寻址方式,其实际地址是如何生成的? (5)循环寻址时必须遵循哪几个原则? (6)采用*AR2+0B寻址,若AR0为0000 1000b,试写出位模式和位反转模式与AR2低4位的关系。 * PC值压入堆栈,相应的中断向量地址放入PC。中断返回时将堆栈顶部数据弹出并放到PC,从而使程序返回到中断前的指令处。 中 断 PC+1的值压入堆栈顶部,然后累加器A或B的低16位放入PC。返回指令将堆栈顶部数据弹出并放到PC,从而使程序返回到调用的下一条指令。 子程序调用 PC+2的值压入堆栈顶部,然后调用指令中的16位立即数地址放入PC。返回指令将堆栈顶部数据弹出并放到PC,从而使程序返回

文档评论(0)

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

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

1亿VIP精品文档

相关文档