第4章 TMS320C54x的指令系统41-43_第1页
第4章 TMS320C54x的指令系统41-43_第2页
第4章 TMS320C54x的指令系统41-43_第3页
第4章 TMS320C54x的指令系统41-43_第4页
第4章 TMS320C54x的指令系统41-43_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 1 2 2 3 3 操作码操作码 源操作数源操作数目的操作数目的操作数标号标号 4 4 5 5 6 6 7 7 8 8 9 9 1010 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 4.2.2 汇编语言常量汇编语言常量 常数就是指令中出现的那些固定值。汇编器支持常数就是指令中出现的那些固定值。汇编器支持7种类型的种类型的 常数:常数: 二进制数二进制数(其后缀为其后缀为B或或b) 十进制数十进制数 八进制数八进制数(后缀为后缀为Q或或q) 十六进制数十六进制数(后缀为后缀为H或或h,它必须由十进制值它必须由十进制值0-9开始开始,也可以由前缀也可以由前缀0 x

2、 标明标明) 字符常数字符常数(由单引号括住的由单引号括住的一个或两个字符一个或两个字符组成组成) 汇编时常量汇编时常量(用用.set伪指令给一个符号赋值,则这个符号等效于一个伪指令给一个符号赋值,则这个符号等效于一个 常量常量) 浮点常数浮点常数(由一串十进制数字及由一串十进制数字及小数点小数点、小数部分和指数部分组成、小数部分和指数部分组成,如如 +314.59e-2)。 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 4.2.3字符串字符串 是由双引号括起来的一串字符。 下列情况中伪指令使用字符串: 说明文件 例如: .copy “filename” 说明段名

3、例如: .sect “sectionname” 说明数据初始化 例如: .byte “charstfing” 作为.string伪指令的操作数 例如: .string “ABCD” 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 4.2.4符号符号 可用于标号、常量和替代其它字符。 4.2.5表达式表达式 是由运算符隔开的常量、符号或常量和符号序列。如1+2 作为操作数。 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 4.3 4.3 汇编语言指令系统汇编语言指令系统 指令系统中的符号和缩写P118 指令系统中的记号和运算符 第第4 4章章

4、TMS320C54xTMS320C54x指令系统指令系统 TMS320C54X指令系统指令系统 TMS320C54X共有205条指令 按功能分为4大类(每大类又分为若干小类) : 算术运算指令; 逻辑运算指令; 程序控制指令; 存储和装入指令。 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 1. 算术运算指令(79条分为6小类,附录A) 加法指令(ADD); 减法指令(SUB); 乘法指令(MPY); 乘加指令(MAC)和乘减指令(MAS); 双数/双精度指令(DADD、DSUB); 特殊操作指令(ABDST、SQDST)。 第第4 4章章 TMS320C54xTM

5、S320C54x指令系统指令系统 (1) 加法指令(13条)附录A 说明:不同的加法指令用途不同; ADD:不带进位; ADD:不带进位、移位; ADDC:带进位; ADDM:专用于立即数; ADDS:无符号数; 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (1)、加法指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 加法指令举例 【例例】 ADD *AR3+, 14, A;将;将AR3所指的数据存储单元内容,左移所指的数据存储单元内容,左移14位与位与A相加,结相加,结 果放果放A中,中,AR3加加1。 操作前 00 0000 12

6、00 1 1500 A B Data Memory 0100h 操作后 00 0540 1200 1 1500 A B 0100h 0100 1 0101 1 AR3 SXM AR3 SXM 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (2) 减法指令(13条)附录A 说明:SUBS用于无符号数的减法运算; SUBB用于带借位的减法运算(如32位扩展精度的减法); SUBC为条件减法 . 使用SUBC重复16次减法,就可以完成除法功能。 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (2)、减法指令 第第4 4章章 TMS320C54x

7、TMS320C54x指令系统指令系统 减法指令举例 【例例】利用SUBC完成整数除法(TEMP1/TEMP2) 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 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统

8、 (3) 乘法指令(10条)附录A 说明: 不同的乘法指令完成不同的功能 MPY:普通乘指令; MPYR:带四舍五入指令; MPYA: A累加器高端参与乘法; MPYU:无符号乘法; SQUR:平方; 小数乘法 将FRCT设置为1,系统自动将乘积结果左移1位。 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (3)、乘法指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 乘法指令举例 【例例】 MPY 13,A; T*Smem A, Smem所在的单数据存储器地址为所在的单数据存储器地址为 13(0Dh) 操作前 000000 0036 0

9、003 0008 A T Data Memory 000Dh 操作后 000000 0018 0003 0008 A T 000Dh 1 1 FRCT FRCT 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (4)、乘加和乘减指令(22条)附录A 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (4) 乘加和乘减指令(22条)条)附录A 【例例】 MAC *AR5+,A ;A+ +(AR5)*TTA, , AR5= AR5+1 操作前 00 0000 1000 040

10、0 1234 A T Data Memory 0100h 操作后 00 0048 E000 0400 1234 A T 0100h 0 0100 0 0101 FRCT AR5 FRCT AR5 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 5、 双 精 度/ 双 数 操 作 指 令 6条 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (5)长操作数指令(6条)条)附录A 【例例】 DADD *AR3+, A, B ;If C16=0 If C16=0 dstdst= = LmemLmem + + srcsrc (长字运算:长字运算: A

11、R3+2AR3+2) 操 作 前 00 5678 8933 00 000 000 1534 A B Data M em ory 0100h 操 作 后 00 5678 8933 00 6BAC BD89 1534 A B 0100h 0 0100 0 0102 C16 AR3 C16 AR3 3456 0101h 3456 0101h 长操作数指令中存在高长操作数指令中存在高16位和低位和低16位操作数在存储器中排列位操作数在存储器中排列 方式问题。有偶地址排列和奇地址排列两种方式。方式问题。有偶地址排列和奇地址排列两种方式。 第第4 4章章 TMS320C54xTMS320C54x指令系统指

12、令系统 (6)特殊应用指令(15条)条)附录A 求绝对值 求累加器指数 求累加器的最大/小值 归一化 求多项式的值 求两点之间距离的平方 求最小均方值 对称有限冲击响应滤波器等 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 6、 特 殊 指 令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 说明: FIRS Xmem,Ymem, pmad; B=B+A*pmad / A=(Ymem +Xmem)16 FIRS指令实现一个对称的有限冲激响应(FIR)滤波器。 Xmem和Ymem相加后的结果左移16位放入累加器A中。在下一个循环 中,pmad

13、加1。 累加器A的高端(3216位)和由pmad寻址得到的Pmem相乘,乘法结果 与累加器B相加并存放在累加器B中。 一旦循环流水线启动,指令成为单周期指令。指令受OVM,FRCT和 SXM状态标志位的影响,执行结果影响C、OVC和OVB。 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 【例例】 FIRS *AR3+,*AR4+,COEFFS 操 作 前 0 0 0 0 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 0 5 5 0 0 A A 1 2 3 4 A B F R C T A R 3 A R 4 D

14、 ata M em o ry 0 1 0 0 h 0 2 0 0 h P ro g ram M em o ry C O E F F S 操 作 后 0 0 0 0 F F 0 0 0 0 0 0 0 0 0 8 7 6 2 C 0 0 1 0 1 0 2 0 1 0 0 5 5 0 0 A A 1 2 3 4 A B F R C T A R 3 A R 4 0 1 0 0 h 0 2 0 0 h C O E F F S 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 2. 逻辑指令(5小类) 与指令(AND); 或指令(OR); 异或指令(XOR); 移位指令(ROL

15、); 测试指令(BITF)。 (1) 与、或、异或指令(共15条)附录A (2) 移位指令和测试指令(共11条)附录A 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 逻辑运算指令 逻辑指令包括与、或、异或、移位和测试指令 1、与指令(、与指令(AND) 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 2、或、异或指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 3、移位和测试指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 【例】 CMPM *AR4+, 0404h; 比较Smem

16、与常数1k是否相 等,若相等TC=1,否则TC=0。 操作前 1 0100 4444 TC AR4 Data Memory 0100h 操作后 0 0101 4444 TC AR4 0100h 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 3. 程序控制指令(7小类) 分支指令(B,BC); 调用指令(CALL); 中断指令(INTR,TRAP); 返回指令(RET); 重复指令(RPT); 堆栈操作指令(FRAME,POP); 其他程序控制指令(IDLE,NOP)。 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 1、分支指令 第第4 4

17、章章 TMS320C54xTMS320C54x指令系统指令系统 (1) 分支指令(6条)附录A 【例例】 BANZD pmad,Sind 若当前辅助寄存器若当前辅助寄存器ARx不为不为0,则,则pmad值赋给值赋给PC,否则否则PC值加值加2。 若为延迟方式,此时紧跟该指令的两条单字指令或一条双字指令先被取若为延迟方式,此时紧跟该指令的两条单字指令或一条双字指令先被取 出执行,然后程序再跳转。该指令不能被循环执行。出执行,然后程序再跳转。该指令不能被循环执行。 如如: BANZ 2000h, *AR3 PC AR3 操作前 1000 0005 操作后 2000 0004 PC AR3 第第4

18、4章章 TMS320C54xTMS320C54x指令系统指令系统 (2)、调用与中断指令、调用与中断指令(5+2) 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (4)、返回指令(6) 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (2)调用指令(5条)附录A 【例例】 CALLD pmad 返回地址压入栈顶返回地址压入栈顶(TOS)保存,无延时时返回地址为保存,无延时时返回地址为PC+2,有延时时返有延时时返 回地址为回地址为PC+4(延时延时2字字); 将将pmad值赋给值赋给PC实现调用。实现调用。 如:如:CALL 3333h 操

19、 作 前 0025 1111 4567 PC SP D ata M em ory 1110h 操 作 后 3333 1110 0027 PC SP 1110h 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (2)中断指令(2条)附录A 【例例】 INTR 3INTR 3;(即;(即K=3K=3) 将将PC值压入栈顶;值压入栈顶; 由由K确定的中断向量赋给确定的中断向量赋给PC,执行该中断服务子程序。执行该中断服务子程序。 中断标志寄存器中断标志寄存器(IFR)对应位清零且对应位清零且INTM=1(禁止可屏蔽中断)禁止可屏蔽中断)。 操作前 0025 0 9653 P

20、C INTM Data Memory 0FFFh 操作后 FF8C 1 0026 PC INTM 0FFFh 01FF 1000 01FF 0FFF IPTR SP IPTR SP 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (5)、重复指令和堆栈操作指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (5)重复指令(5条)附录A 【例例】 RPTBD pmad; 块循环指令。块循环指令。 循环次数必须在指令执行前装入循环次数必须在指令执行前装入BRC。执行命令时,块循环起始寄存器。执行命令时,块循环起始寄存器RSA装入装入 PC+2(

21、若有若有D后缀时为后缀时为PC+4),块循环尾地址寄存器,块循环尾地址寄存器REA中装入中装入pmad。 ST #99,BRC ;循环计数器赋值 RPTB end_block1 ;end_block 为循环块的底部 操作前 1000 1234 9ABC PC BRC RSA REA 操作后 1002 0063 end block1 PC BRC REA 5678 1002 RSA 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (5)堆栈操作指令(5条)附录A (6)其他程序控制指令(7条)附录A 保持空闲状态直到有中断产生 修改辅助寄存器 无任何操作 软件复位 状态

22、寄存器复位 状态寄存器置位 条件执行 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (6)、混合程序控制指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 4. 存储和装入指令( 8小类) (1)装入指令(LD) ; (21条) 附录A (2)存储指令(ST); (14条)附录A (3)条件存储指令(CMPS);(4条)附录A 注:比较注:比较/选择选择/存储或满足条件存储存储或满足条件存储 (4)并行指令(13条) 附录A 并行装入和存储指令(LD|ST); (2条) 并行装入和乘法指令(LD|MAC); (4条) 并行存储和加减指令(

23、ST |ADD,ST |SUB); (2条) 并行存储和乘法指令(ST|MAC); (5条) (5)其他装入和存储指令(MVDD,PORTW,READA) (12条)附录A / 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (1)、一般的装入指令(21) 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 2、存贮指令(14) 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (4) 并行装入和存储指令并行装入和存储指令 (3)、条件存储指令、条件存储指令(4) 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (4)、并行存储和加、减、乘法指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (4)、并行装入和乘法指令 第第4 4章章 TMS320C54xTMS320C54x指令系统指令系统 (5)、混合装入和存储指令(12)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论