- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章TMS320C2000DSP指令系统
4.1 ’C2000寻址方式 ‘C2xx DSP具有三种基本的寻址方式:立即数寻址、直接寻址和间接寻址。 一、立即寻址方式 立即寻址方式最为简单,操作数就包括在指令中,操作数地址即指令寄存器IR的某些位。 立即寻址的操作数有两种: 短立即数:短立即数寻址方式时,指令字为单字长; 长立即数:长立即数操作时,指令字为双字长。 为了与直接寻址方式中的地址操作数区别,立即寻址方式中的立即数要以“#”符开头。 短立即数寻址方式举例 长立即数寻址方式举例 ADD #16384,2 ;将16384(4000h)左移2位 ;后与累加器内容相加,结果保存在累加器中 二、直接寻址方式 由指令直接给出操作数所在地址。 数据存储器被分为512页,页面由DP指定;每1页包含128个字,页内位置由指令字给出。 由于直接寻址方式中页面地址由数据指针DP直接给出,因此每次寻址操作只能在一页进行(128个字的地址变化范围),若超过此范围,必须重新设置数据指针DP。 直接寻址操作步骤 1、设置数据页 2、指明偏移量 例如: LDP #19h ADD 4h 举例 在数据存储器209h处的内容为 0x32 (32h),ACC的内容为 0x08,使209h内容左移5位后与ACC累加,问指令执行后ACC = ? 若使用直接寻址方式,如何编程? 解答 209h 〉80h, (80h=27) 而 209h = 0000 0010 0000 1001, 故低7位地址为:09h,高位地址为:04h。 相应指令可写为: 三、间接寻址方式 数据存储器地址由辅助寄存器ARn间接给出。 这种寻址方式中,使用的辅助寄存器是当前辅助寄存器,由辅助寄存器指针ARP指定,ARn=AR(ARP)。如ARP=2,则使用的地址寄存器就是AR2,如图示。 ARn和ARP的指定 辅助寄存器指针ARP指定当前辅助寄存器AR(ARP),而ARP的值则可直接通过修改状态寄存器ST0相应位来加载,但更方便的是使用MAR指令和LARP指令。例如: MAR *,AR0 ;ARP=0 LARP 1 ;ARP=1 举例 ADD *BR0+,12,AR2 指令执行前,AR0 = 08h,ARP = 4, AR4 = 329h,AR2 = 304h; 数据存储器329h单元内容[329h] = 123h, ACC = 456h, 指令操作见图示 间接寻址是有效的寻址方式 间接寻址方式是一种非常特别而又非常有效的寻址方式,在这种寻址方式的操作中,除给出当前操作数地址外,还可对当前辅助寄存器AR(ARP)进行修改,并给出下次的当前辅助寄存器(即对ARP修改)。这样,在进行数据处理运算时,寻址不会造成额外的周期产生,这对实时信号处理非常重要。 寻址方式考虑 在实际编程中采用哪种寻址方式要考虑存储器容量,程序对速度的要求,以及指令的简便易读程度等方面因素。 在对数据块、流的处理中,基于间接寻址的操作,一般效率更高,因其地址的变更是不额外耗时的。另外,间接寻址中的位反转(反向进位)特性特别适合于FFT算法。 对固定单元的寻址,采用直接寻址方式更简单。 4.3 ’C2000指令系统简介 ‘C2xx DSP中共有汇编语言指令88条,分成6类: ①累加器、算术和逻辑指令26条如:ADD、LACC、AND ②辅助寄存器和数据页面指针指令7条如:MAR、LAR等 ③TREG、PREG和乘法指令20条如:LT、MTY、PAC等 ④分支、调用指令12条如:B、BCND、INTR等 ⑤控制指令15条如:SPM、POP、BIT等 ⑥存储器和I/O操作指令8条如:BLDD、SPLK、TBLR等 注:有些指令助记符是增强性指令,对应于几条简单指令(机器码),如:ADD可完成ADD,ADDH,ADDK和ADLK等功能,这样做可使程序更简洁并易读。 4.3.1 指令格式 指令格式如下表示: 指令助记符 指令操作数 指令助记符就是88条汇编语言指令助记符,而指令操作数的表示法则比较复杂,对应于三种寻址方式,有三种操作数格式。 (1)直接寻址方式操作时 指令助记符 dma [,shift] 或: 指令助记符 dma,16 其中dma为直接寻址时的数据存储器地址(即页内偏移地址7位),汇编语言中若直接使用符号地址,则可自动截取全符号地址16位的低7位(而符号地址对DP赋值时则把
文档评论(0)