850 likes | 1.07k Views
第 3 章 TMS320C24X 寻址方式和指令系统. TMS320LF240x 系列 DSP 采用与 TMS320C24x 相同的核,故两者的指令系统是相同的. 3.1 寻址方式. 3 种基本的寻址方式: 立即寻址 :直接提供常数作为指令的操作数 需要访问数据存储器时可采用直接寻址或间接寻址 直接寻址 :通过直接指定的地址来访问数据存储器 间接寻址 :通过 8 个辅助寄存器之一间接访问数据存储器. 1. 立即寻址方式. 支持两种立即寻址:短立即寻址和长立即寻址.
E N D
第3章TMS320C24X 寻址方式和指令系统 DSP芯片技术及应用
TMS320LF240x 系列DSP采用与TMS320C24x相同的核,故两者的指令系统是相同的 3.1 寻址方式 3种基本的寻址方式: 立即寻址:直接提供常数作为指令的操作数 需要访问数据存储器时可采用直接寻址或间接寻址 直接寻址:通过直接指定的地址来访问数据存储器 间接寻址:通过8个辅助寄存器之一间接访问数据存储器 DSP芯片技术及应用
1. 立即寻址方式 支持两种立即寻址:短立即寻址和长立即寻址 短立即寻址——可指定8位、9位或13位的常数作为操作数 长立即寻址——可指定16位的常数作操作数 立即操作数以#为前缀 DSP芯片技术及应用
采用短立即寻址的RPT指令 RPT #49 ;将紧跟RPT指令后的那条指令执行50次。 指令寄存器中的内容 : 采用立即寻址的RPT代码 8位常数=49 立即操作数作为RPT指令字的一部分 。 立即操作数以符号#为前缀 。 DSP芯片技术及应用
长立即寻址的 ADD指令 ADD #65534 ,2 ;将数据65534左移两位后,再将结果加至累加器。 第一条指令字: 采用长立即寻址的ADD代码 Shift=2 第二条指令字: 16位常数=65534=FFFEh 立即操作数包含在第二条指令字中 ,指令寄存器顺次接收两个指令字的16位值。 DSP芯片技术及应用
直接寻址方式 • 通过指定的地址来访问数据存储器:数据页+偏移量 • 64K存储器以128(2^7)为单位被分成512(2^9)个数据页,标号:0~511 如要访问某一特定的单元,用户需 1. 设置数据页 2. 指明偏移量 DSP芯片技术及应用
处理器用页指针DP来寻找数据页,用指令寄存器的低7位有效位来寻址该页上的特定地址。 (1) 设置数据页:将数据页(0-511)装入DP。 DP可由LDP指令装载,也可由向ST0装载的任何指令来装载DP。 LDP指令直接装载DP,并且不影响ST0的其它位。 例: LDP #32;设置当前数据页为32(1000h-107Fh) 注意:在任何程序中都要初始化DP。因为上电后不定义DP;复位不初始化DP。 DSP芯片技术及应用
(2) 指明偏移量:7位偏移量由指令的操作数提供。 例: 如果希望ADD指令取当前数据页的第5个地址处的数据: ADD 5H;将当前数据页中偏移量为5h处的数据加至累加器 说明 采用直接寻址时,不必每条指令前都要设置数据页。 总之,必须保证要访问新的数据页之前改变DP。 DSP芯片技术及应用
直接寻址示例 采用直接寻址的ADD指令(移位0至15位) LDP #4 ;数据页设为4(0200h-027Fh) ADD 9H,5 ;将数据地址0209h处的内容左移5位后加至累加器 采用直接寻址的ADDC指令 LDP #500 ;数据页设为500(FA00h-FA7Fh) ADDC 8H ;数据地址FA08h处内容和进位值(C)被加至累加器 DSP芯片技术及应用
3. 间接寻址方式 • 利用8个16位的辅助寄存器AR0~AR7可访问数据存储器任意单元,要访问的数据单元的地址装在当前辅助寄存器中 • 当前辅助寄存器(当前AR) 由ST0的ARP指定,也可通过指令MAR LST等直接指定 • 间接寻址选项 *, *+, *-, *0+, *0- 等实现当前AR中目标数据单元的变更 • 重新指定当前辅助寄存器 DSP芯片技术及应用
除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器AR。除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器AR。 当本条指令执行完之后,下一个辅助寄存器AR便成为当前辅助寄存器AR。 例: 选择新的当前辅助寄存器AR MAR *,AR1 ;将当前辅助寄存器AR设为AR1 LACL *+,AR2 ;用辅助寄存器AR1所指向的地址中内容装载累加器的低16位,AR1内容加1,使AR2为当前辅助寄存器AR SACL *+ ;将累加器的低16位存于AR2所指向的地址单元,AR2内容加1。 DSP芯片技术及应用
示例 通过辅助寄存器实现数据块的移动 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芯片技术及应用
3.2 指令集 包括5大类86条指令, 对应表格3.2~3.7 算术逻辑运算指令 寻址相关的指令 乘法相关指令 转移和控制指令 I/O 和存储器操作指令 DSP芯片技术及应用
命令概述表中涉及的相关符号的意义(见P.57下)命令概述表中涉及的相关符号的意义(见P.57下) 左移 DSP芯片技术及应用
命令概述表中涉及的相关符号的意义(见P.57下)命令概述表中涉及的相关符号的意义(见P.57下) DSP芯片技术及应用
常用指令集 LDP SPLK LACC ADD SACL LAR MAR BANZ LT MPY MPYA APAC SPAC DSP芯片技术及应用
3.3 典型指令说明 1. 加法指令:ADD,ADDC, ADDS, ADDT 减法指令:SUB, SUBB, SUBS, SUBT 正数除法实现:SUBC • ADD 语法 DSP芯片技术及应用
命令 执行 状态位 DSP芯片技术及应用
例1 例2 例3 DSP芯片技术及应用
3.3 典型指令说明 • ADDC 语法 命令执行 状态位 DSP芯片技术及应用
3.3 典型指令说明 例1 例2 DSP芯片技术及应用
3.3 典型指令说明 • ADDS DSP芯片技术及应用
3.3 典型指令说明 • ADDT DSP芯片技术及应用
3.3 典型指令说明 • SUB(与ADD对应) 语法 状态位 命令 执行 例 DSP芯片技术及应用
3.3 典型指令说明 其他减法相关命令:SUBB,SUBS,SUBT等 DSP芯片技术及应用
3.3 典型指令说明 • 实现正数的除法:SUBC 语法 状态位 命令 执行 SUBC完成条件减法,也可按下列方法实现除法:把一个正的16位被除数放在ACC的低16位,高16位清零。正的16位除数放在数据存储器中,然后执行SUBC16次。除法的结果在ACC中,其中低16位是商,高16位是除法的余数。对于负的被除数或除数,SUBC不能实现除法 DSP芯片技术及应用
3.3 典型指令说明 2. 乘法及其结果处理相关指令:MPY, MPYA, MPYS, MPYU,MAC,MACD,PAC,APAC,SPAC,SPH,SPL 语法 状态位 无 命令 执行 例1 例2 DSP芯片技术及应用
3.3 典型指令说明 MPYA,MPYS,MPYU DSP芯片技术及应用
3.3 典型指令说明 MAC 语法 命令执行 状态位 例 DSP芯片技术及应用
3.3 典型指令说明 DSP芯片技术及应用
3.3 典型指令说明 MACD 语法 命令执行 状态位 dma为存储器映像寄存器或外部存储器时此操作不执行,此时该指令等效为MAC 例 DSP芯片技术及应用
3.3 典型指令说明 PAC, APAC,SPAC,SPH,SPL LSBs DSP芯片技术及应用
3.3 典型指令说明 • 与乘法准备相关指令:LT,LTD, LTA, LTP, LTS, SQRA, SQRS 语法 例1 例2 DSP芯片技术及应用
3.3 典型指令说明 LTD 语法 状态位 命令 执行 例1 Note: The data move function for LTD can occur only within on-chip data memory RAM blocks.此时等效LTA DSP芯片技术及应用
3.3 典型指令说明 LTA, LTP, LTS, SQRA, SQRS 平方指令 改为- 与乘法相关指令共18条 DSP芯片技术及应用
3.3 典型指令说明 3. 逻辑运算:ABS, AND, OR, NEG, XOR • ABS DSP芯片技术及应用
3.3 典型指令说明 • AND 语法 命令 执行 高位清零 DSP芯片技术及应用
3.3 典型指令说明 状态位 无 例1 例2 例3 DSP芯片技术及应用
3.3 典型指令说明 其他逻辑指令:OR,NEG, XOR 高位不变 DSP芯片技术及应用
3.3 典型指令说明 4. 位操作相关指令:BIT, BITT, CMPL, CLRC, SETC, SPM 语法 状态位 影响 TC 命令 执行 例 DSP芯片技术及应用
3.3 典型指令说明 BITT(动态位测试) 语法 状态位 影响 TC 命令 执行 例 DSP芯片技术及应用
3.3 典型指令说明 DSP芯片技术及应用
3.3 典型指令说明 CMPL: 取反 语法 命令执行 状态位 无 例 不影响C DSP芯片技术及应用
3.3 典型指令说明 CLRC 语法 操作数 命令执行 PC+1, control bit=0 状态位 无 例 DSP芯片技术及应用
3.3 典型指令说明 SETC, SPM 语法 操作数 同CLRC 操作数 0~3 状态位 影响PM 状态位 无 命令 执行 例 例 DSP芯片技术及应用
3.3 典型指令说明 5. 程序控制类指令: • 跳转指令:B, BACC, BANZ, BCND 语法 命令 执行 语法 命令 执行 DSP芯片技术及应用
3.3 典型指令说明 BANZ 语法 状态位 无 命令 执行 例1 DSP芯片技术及应用
3.3 典型指令说明 例2 DSP芯片技术及应用
3.3 典型指令说明 BCND 语法 状态位 无 命令执行 操作数 例 DSP芯片技术及应用