3.2指令系统.ppt

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

汇编程序语法 TMS320的汇编程序包含汇编指令(伪指令,assembler directives)、汇编语言指令(assembly language instructions)、宏指令(macro directives)和注释(comments)。 C54的指令既可以是助记符方式,也可以是代数式方式 助记符方式汇编程序语法 [label][:] mnemonic [operand list] [;comment] [标号][:] 助记符 [操作数] [;注释] 汇编程序语法 所有的语句必须由语句标号、空格、*号或 ;号开头。 语句标号 由字母、数字、_、$组成,最多不超过32个字符,对大小写敏感,第一个字符不能是数字。后跟 :,但分号不是语句标号的组成部分。 助记符 助记符不允许从第一列开始,否则被认为是语句标号。 操作数 操作数可以是常数、符号或表达式。当操作数多于一个时,用逗号分开。 常数 二进制常数(如01B或01b) 八进制常数(如10Q或10q) 十进制常数(如23) 十六进制常数(如78H或78h) 字符常数(如‘A’或‘b’) 字符串(如“sample program”) 汇编时使用的常数 表达式 表达式是一个常数、符号、或用算术运算符连接起来的常数或符号。表达式的值的范围为-32768到32767 TMS320C54x的助记符指令集有近两百条指令,按功能分为如下几类: ?装入和存储指令 ?逻辑运算指令 ?程序控制指令 ?算术运算指令 一、装入和存储指令 装入和存储指令包括: 一般的装入和存储指令 条件存储指令 并行装入和存储指令 并行装入和乘法指令 并行存储和加减乘指令 混合装入和存储指令 1、一般的装入指令 装入指令应用举例 2、存贮指令 存储指令应用举例 7、混合装入和存储指令 TMS320C54x的数 一个16位的二进制数既可以表示一个整数,也可以表示一个小数。 TMS320C54x程序简例 当需要表示小数时,小数点的位置始终在最高位后,最高位(D15)表示符号位。 TMS320C54x程序简例 在DSP中,一个16进制的数可以表示不同的十进制数,或者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数乘除时,系统对它们的处理才是有所区别的,而在加减运算时,系统都当成整数来处理。 1、加法指令 2、减法指令 实现16位定点减法 ‘C54X中提供了多条用于减法的指令,如SUB,SUBB,SUBC和SUBS。SUB指令与ADD指令一样,有许多的寻址方式。 定点减法 STM #temp1,AR3;变量temp1的地址装入ar3寄存器 STM #temp2, AR2 ;变量temp2的地址装入ar2寄存器 SUB *AR2, *AR3,B ;变量temp2和temp1都左移16位,然后相减,结果放入累加器B中(高16位) STH B,temp3 ;相减的结果(累加器B的高16位)存入变量temp3。 LD @x,A ; 直接寻址 ADD @y,A SUB @w,A ; A=A-@w STL A, @z 特殊的减法指令 其中SUBS用于无符号数的减法运算 SUBB用于带进位的减法运算(如32位扩展精度的减法) 而SUBC为移位减,DSP中的除法就是用该指令来实现的。 SUBB指令应用举例 SUBB Smem,src Execution: (src)-(Smem)-(logical inversion of c)?(src) Eg1: SUBB DAT5,A 思考题: 谷物产量传感器 利用SUBC实现除法 在‘C54X中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于除以常数特别适用。另一种方法是使用SUBC指令,重复16次减法完成除法运算。 3、乘法指令 定点整数乘法 例 定点整数乘法 RSBX FRCT ;清FRCT标志,准备整数乘 LD temp1,T ;变量temp1装入T寄存器 MPY temp2, A ;temp2*temp1,结果放入 累加器A(32位) STH A,temp3 ;结果的高16位存入temp3 STL A,temp4 ;结果的低16位存入temp4 特殊的乘法指令 MPYR: 将乘积四舍五入 MPYA:累加器A的高阶位做乘数 M

文档评论(0)

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

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

1亿VIP精品文档

相关文档