1 / 85

第 3 章 TMS320C24X 寻址方式和指令系统

第 3 章 TMS320C24X 寻址方式和指令系统. TMS320LF240x 系列 DSP 采用与 TMS320C24x 相同的核,故两者的指令系统是相同的. 3.1 寻址方式. 3 种基本的寻址方式: 立即寻址 :直接提供常数作为指令的操作数 需要访问数据存储器时可采用直接寻址或间接寻址 直接寻址 :通过直接指定的地址来访问数据存储器 间接寻址 :通过 8 个辅助寄存器之一间接访问数据存储器. 1. 立即寻址方式. 支持两种立即寻址:短立即寻址和长立即寻址.

zuri
Download Presentation

第 3 章 TMS320C24X 寻址方式和指令系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章TMS320C24X 寻址方式和指令系统 DSP芯片技术及应用

  2. TMS320LF240x 系列DSP采用与TMS320C24x相同的核,故两者的指令系统是相同的 3.1 寻址方式 3种基本的寻址方式: 立即寻址:直接提供常数作为指令的操作数 需要访问数据存储器时可采用直接寻址或间接寻址 直接寻址:通过直接指定的地址来访问数据存储器 间接寻址:通过8个辅助寄存器之一间接访问数据存储器 DSP芯片技术及应用

  3. 1. 立即寻址方式 支持两种立即寻址:短立即寻址和长立即寻址 短立即寻址——可指定8位、9位或13位的常数作为操作数 长立即寻址——可指定16位的常数作操作数 立即操作数以#为前缀 DSP芯片技术及应用

  4. 采用短立即寻址的RPT指令 RPT #49 ;将紧跟RPT指令后的那条指令执行50次。 指令寄存器中的内容 : 采用立即寻址的RPT代码 8位常数=49 立即操作数作为RPT指令字的一部分 。 立即操作数以符号#为前缀 。 DSP芯片技术及应用

  5. 长立即寻址的 ADD指令 ADD #65534 ,2 ;将数据65534左移两位后,再将结果加至累加器。 第一条指令字: 采用长立即寻址的ADD代码 Shift=2 第二条指令字: 16位常数=65534=FFFEh 立即操作数包含在第二条指令字中 ,指令寄存器顺次接收两个指令字的16位值。 DSP芯片技术及应用

  6. 直接寻址方式 • 通过指定的地址来访问数据存储器:数据页+偏移量 • 64K存储器以128(2^7)为单位被分成512(2^9)个数据页,标号:0~511 如要访问某一特定的单元,用户需 1. 设置数据页 2. 指明偏移量 DSP芯片技术及应用

  7. 处理器用页指针DP来寻找数据页,用指令寄存器的低7位有效位来寻址该页上的特定地址。 (1) 设置数据页:将数据页(0-511)装入DP。 DP可由LDP指令装载,也可由向ST0装载的任何指令来装载DP。 LDP指令直接装载DP,并且不影响ST0的其它位。 例: LDP #32;设置当前数据页为32(1000h-107Fh) 注意:在任何程序中都要初始化DP。因为上电后不定义DP;复位不初始化DP。 DSP芯片技术及应用

  8. (2) 指明偏移量:7位偏移量由指令的操作数提供。 例: 如果希望ADD指令取当前数据页的第5个地址处的数据: ADD 5H;将当前数据页中偏移量为5h处的数据加至累加器 说明 采用直接寻址时,不必每条指令前都要设置数据页。 总之,必须保证要访问新的数据页之前改变DP。 DSP芯片技术及应用

  9. 直接寻址示例 采用直接寻址的ADD指令(移位0至15位) LDP #4 ;数据页设为4(0200h-027Fh) ADD 9H,5 ;将数据地址0209h处的内容左移5位后加至累加器 采用直接寻址的ADDC指令 LDP #500 ;数据页设为500(FA00h-FA7Fh) ADDC 8H ;数据地址FA08h处内容和进位值(C)被加至累加器 DSP芯片技术及应用

  10. 3. 间接寻址方式 • 利用8个16位的辅助寄存器AR0~AR7可访问数据存储器任意单元,要访问的数据单元的地址装在当前辅助寄存器中 • 当前辅助寄存器(当前AR) 由ST0的ARP指定,也可通过指令MAR LST等直接指定 • 间接寻址选项 *, *+, *-, *0+, *0- 等实现当前AR中目标数据单元的变更 • 重新指定当前辅助寄存器 DSP芯片技术及应用

  11. DSP芯片技术及应用

  12. 除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器AR。除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器AR。 当本条指令执行完之后,下一个辅助寄存器AR便成为当前辅助寄存器AR。 例: 选择新的当前辅助寄存器AR MAR *,AR1 ;将当前辅助寄存器AR设为AR1 LACL *+,AR2 ;用辅助寄存器AR1所指向的地址中内容装载累加器的低16位,AR1内容加1,使AR2为当前辅助寄存器AR SACL *+ ;将累加器的低16位存于AR2所指向的地址单元,AR2内容加1。 DSP芯片技术及应用

  13. 示例 通过辅助寄存器实现数据块的移动 lar ar5,#8000H mar *,ar5 rpt #25 blpd #table1,*+ • 示例 通过辅助寄存器实现对特定数据块的访问 lar ar6,#239 lar ar5,#8100h lar ar3,#8200h Loop: mar *,ar5 lacc 56h sub *+,ar3 sacl *+,ar6 banz loop DSP芯片技术及应用

  14. 3.2 指令集 包括5大类86条指令, 对应表格3.2~3.7 算术逻辑运算指令 寻址相关的指令 乘法相关指令 转移和控制指令 I/O 和存储器操作指令 DSP芯片技术及应用

  15. 命令概述表中涉及的相关符号的意义(见P.57下)命令概述表中涉及的相关符号的意义(见P.57下) 左移 DSP芯片技术及应用

  16. 命令概述表中涉及的相关符号的意义(见P.57下)命令概述表中涉及的相关符号的意义(见P.57下) DSP芯片技术及应用

  17. 常用指令集 LDP SPLK LACC ADD SACL LAR MAR BANZ LT MPY MPYA APAC SPAC DSP芯片技术及应用

  18. 3.3 典型指令说明 1. 加法指令:ADD,ADDC, ADDS, ADDT 减法指令:SUB, SUBB, SUBS, SUBT 正数除法实现:SUBC • ADD 语法 DSP芯片技术及应用

  19. 命令 执行 状态位 DSP芯片技术及应用

  20. 例1 例2 例3 DSP芯片技术及应用

  21. 3.3 典型指令说明 • ADDC 语法 命令执行 状态位 DSP芯片技术及应用

  22. 3.3 典型指令说明 例1 例2 DSP芯片技术及应用

  23. 3.3 典型指令说明 • ADDS DSP芯片技术及应用

  24. 3.3 典型指令说明 • ADDT DSP芯片技术及应用

  25. 3.3 典型指令说明 • SUB(与ADD对应) 语法 状态位 命令 执行 例 DSP芯片技术及应用

  26. 3.3 典型指令说明 其他减法相关命令:SUBB,SUBS,SUBT等 DSP芯片技术及应用

  27. 3.3 典型指令说明 • 实现正数的除法:SUBC 语法 状态位 命令 执行 SUBC完成条件减法,也可按下列方法实现除法:把一个正的16位被除数放在ACC的低16位,高16位清零。正的16位除数放在数据存储器中,然后执行SUBC16次。除法的结果在ACC中,其中低16位是商,高16位是除法的余数。对于负的被除数或除数,SUBC不能实现除法 DSP芯片技术及应用

  28. 3.3 典型指令说明 2. 乘法及其结果处理相关指令:MPY, MPYA, MPYS, MPYU,MAC,MACD,PAC,APAC,SPAC,SPH,SPL 语法 状态位 无 命令 执行 例1 例2 DSP芯片技术及应用

  29. 3.3 典型指令说明 MPYA,MPYS,MPYU DSP芯片技术及应用

  30. 3.3 典型指令说明 MAC 语法 命令执行 状态位 例 DSP芯片技术及应用

  31. 3.3 典型指令说明 DSP芯片技术及应用

  32. 3.3 典型指令说明 MACD 语法 命令执行 状态位 dma为存储器映像寄存器或外部存储器时此操作不执行,此时该指令等效为MAC 例 DSP芯片技术及应用

  33. 3.3 典型指令说明 PAC, APAC,SPAC,SPH,SPL LSBs DSP芯片技术及应用

  34. 3.3 典型指令说明 • 与乘法准备相关指令:LT,LTD, LTA, LTP, LTS, SQRA, SQRS 语法 例1 例2 DSP芯片技术及应用

  35. 3.3 典型指令说明 LTD 语法 状态位 命令 执行 例1 Note: The data move function for LTD can occur only within on-chip data memory RAM blocks.此时等效LTA DSP芯片技术及应用

  36. 3.3 典型指令说明 LTA, LTP, LTS, SQRA, SQRS 平方指令 改为- 与乘法相关指令共18条 DSP芯片技术及应用

  37. 3.3 典型指令说明 3. 逻辑运算:ABS, AND, OR, NEG, XOR • ABS DSP芯片技术及应用

  38. 3.3 典型指令说明 • AND 语法 命令 执行 高位清零 DSP芯片技术及应用

  39. 3.3 典型指令说明 状态位 无 例1 例2 例3 DSP芯片技术及应用

  40. 3.3 典型指令说明 其他逻辑指令:OR,NEG, XOR 高位不变 DSP芯片技术及应用

  41. 3.3 典型指令说明 4. 位操作相关指令:BIT, BITT, CMPL, CLRC, SETC, SPM 语法 状态位 影响 TC 命令 执行 例 DSP芯片技术及应用

  42. 3.3 典型指令说明 BITT(动态位测试) 语法 状态位 影响 TC 命令 执行 例 DSP芯片技术及应用

  43. 3.3 典型指令说明 DSP芯片技术及应用

  44. 3.3 典型指令说明 CMPL: 取反 语法 命令执行 状态位 无 例 不影响C DSP芯片技术及应用

  45. 3.3 典型指令说明 CLRC 语法 操作数 命令执行 PC+1, control bit=0 状态位 无 例 DSP芯片技术及应用

  46. 3.3 典型指令说明 SETC, SPM 语法 操作数 同CLRC 操作数 0~3 状态位 影响PM 状态位 无 命令 执行 例 例 DSP芯片技术及应用

  47. 3.3 典型指令说明 5. 程序控制类指令: • 跳转指令:B, BACC, BANZ, BCND 语法 命令 执行 语法 命令 执行 DSP芯片技术及应用

  48. 3.3 典型指令说明 BANZ 语法 状态位 无 命令 执行 例1 DSP芯片技术及应用

  49. 3.3 典型指令说明 例2 DSP芯片技术及应用

  50. 3.3 典型指令说明 BCND 语法 状态位 无 命令执行 操作数 例 DSP芯片技术及应用

More Related