杭电研1课件 指令.pptVIP

  • 8
  • 0
  • 约3.71千字
  • 约 29页
  • 2018-10-11 发布于江苏
  • 举报
杭电研1课件 指令

第九章 TMS320C54软件结构 三、指令系统 1. 算术运算指令(79条分为6小类) (1) 加法指令(13条)《表3-6》 加法指令举例 (2) 减法指令(13条)《表3-7》 减法指令举例 (3) 乘法指令(10条)《表3-8》 乘法指令举例 (4) 乘加和乘减指令(15条)《表3-9》 (5)长操作数指令(6条)《表3-10》 (6)特殊应用指令(15条)《表3-11》 有限冲击响应滤波器 第一类线性相位的充要条件 2. 逻辑指令(5小类) 3. 程序控制指令(7小类) (1) 分支指令(6条)《表3-14》 (2)调用和返回指令(6条)《表3-15》 (3)重复指令(5条)《表3-16》 (4)中断指令(2条)《表3-17》 (5)堆栈操作指令(5条)《表3-18》 4. 存储和装入指令( 8小类) 单个循环指令 * * 本章学习目标 掌握各种寻址方式 掌握常用指令 会分析常用汇编语言程序结构 ? 算术运算指令 ? 逻辑运算指令 ? 程序控制指令 ? 存储和装入指令 TMS320C54X共有129条指令 按功能分为4大类(每大类又分为若干小类) * 指令书写方式:助记符/表达式 ? 加法指令(ADD) ? 减法指令(SUB) ? 乘法指令(MPY) ? 乘加指令(MAC)和乘减指令(MAS) ? 双数/双精度指令(DADD、DSUB) ? 特殊操作指令(ABDST、SQDST) ① 不同的加法指令用途不同; ADD:不带进位; ADD :不带进位、移位; ADDC:带进位; ADDM:专用于立即数; ADDS:无符号数; ② 表中的src是累加器 【例3.1】 ADD *AR3+, 14, A;将AR3所指的数据存储单元内容,左移14位与A相加,结果放A中,AR3加1。 ST1-8符号位扩展 ①SUBS用于无符号数的减法运算; SUBB用于带借位的减法运算(如32位扩展精度的减法); SUBC为条件减法 。 注:被除数和商共用一个R → B:随着B的左移被除数逐渐退出,商从右→左逐渐进入。 ②使用SUBC重复16次减法,就可以完成除法功能。 被除数-(除数15):够减:被除数左移,商+1; 不够减 :被除数左移,商+0; ?LD TEMP1, B ;将被除数TEMP1装入B累加器的低16位 RPT #15 ;重复SUBC指令16次 SUBC TEMP2, B ;使用SUBC指令完成除法 STL B, TEMP3 ;将商(B累加器的低16位)存入变量TEMP3 STH B, TEMP4 ;将余数(B累加器的高16位)存入变量TEMP4 【例】利用SUBC完成整数除法(TEMP1/TEMP2) ? RPT #15 ;重复SUBC指令16次 SUBC *AR3 , B ① 不同的乘法指令完成不同的功能 MPY:普通乘指令; MPYR:带四舍五入指令; MPYA: A累加器高端参与乘法; MPYU:无符号乘法; SQUR:平方; ② 小数乘法 将FRCT设置为1,系统自动将乘积结果左移1位。 【例3.2】 MPY 13,A; T*Smem →A, Smem所在的单数据存储器地址为13(0Dh) 【例3.3】 MAC *AR5+,A ; A+(AR5)*T→A, AR5= AR5+1 【例3.4】 DADD *AR3+, A, B ;If C16=0 dst= Lmem + src (长字运算:AR3+2) 双精度工作模式 高16位 ? 求绝对值 ? 求累加器指数 ? 求累加器的最大/小值 ? 归一化 ? 求多项式的值 ? 求两点之间距离的平方 ? 求最小均方值 ? 对称有限冲击响应滤波器等 ? 一旦循环流水线启动,指令成为单周期

文档评论(0)

1亿VIP精品文档

相关文档