欢迎来到天天文库
浏览记录
ID:65493824
大小:2.63 MB
页数:120页
时间:2022-01-09
《第三章 DSP技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第三章TMS320LF240x的软件结构TMS320LF240x的寻址方式TMS320LF240x的汇编指令DSP软件的文件结构定点DSP芯片的数据定标及运算非线性函数的处理方法3.1TMS320LF240x的寻址方式DSP系统也具有计算机的一般特性,其完成的任务是采样、运算和输出的功能,即从某个地址单元(片内或片外)取数据,然后按照一定的规则进行运算,最后将运算的结果存放到某个地址单元来输出。因此,在程序中如何寻址和表达数据的地址是软件系统的关键问题。TMS320LF240x的程序采用了三种基本的寻址方式:立即寻址、直接寻址和间接寻
2、址。3.1.1立即寻址方式指令操作所需要的数就在本指令中,这个数也称为立即数。立即寻址的操作数分为短立即数和长立即数,因此相应的寻址方式也有短立即数寻址和长立即数寻址。退出【例1】采用8位短立即数寻址的RPT指令,需要重复执行的次数包含在指令操作码后。RPT#k;8位短立即数寻址退出【例2】采用9位短立即数寻址的RPT指令,需要重复执行的次数包含在指令操作码后。RPT#k;9位短立即数寻址退出【例3】采用13位短立即数寻址的RPT指令,需要重复执行的次数包含在指令操作码后。RPT#k;13位短立即数寻址退出【例4】采用16位长立即数寻
3、址的ADD指令。ADD#1k,2;将立即数1k左移2位后与累加器中;的内容相加,结果存累加器中退出3.1.2直接寻址方式操作地址就在指令中,按照该地址可以直接访问寄存器,这个地址也称为直接地址。在DSP程序中,直接寻址通常是将指令中的数据页指针DP和操作数合并起来作为被访问的地址。每页的具体操作地址的高9位是由数据页指针DP决定;低7位(又称偏移地址量)是由指令操作数决定,它处于指令寄存器的最低7位有效位上。DP指针与偏移地址量共同构成16位的指令操作地址。第15~8位为指令的操作码;第7位为直接/间接寻址指示符,为0是直接寻址;第6
4、~0位为偏移地址量。退出因此,在使用直接寻址方式时,应按下述步骤进行:(1)设置数据页面。将页值加载到DP,加载时可使用LDP指令。LDP指令可直接加载DP而不影响ST0的其他位,该指令明确指出加载到DP的值,例如把当前数据页设置成32(地址1000h-107Fh),可使用如下指令。LDP#32;加载数据页指针(2)指定偏移量。提供7位偏移量作为指令的操作数。例如将当前数据页的第2个地址中的数据加到ACC时。ADD1h;将当前数据页中偏移量为1处的数据加到ACC如果在一段代码块中所有的指令都访问的是同一数据页,则只需在该块代码的前面加
5、载一次DP即可;如果代码块中需要访问不同的数据页,则每当访问新的数据页时需确保加载相应的DP。退出【例5】采用直接寻址的ADD指令。LDP#4;设置数据页为4(地址0200h-027Fh)ADD9h,5;将数据地址0209h单元的内容左移5位后加至ACC退出【例6】使用直接寻址的ADDC指令。LDP#500;设置数据页为500(地址FA00h-FA7Fh)ADDC6h;数据寄存器地址FA06h单元的内容和进位值(C);一起加至累加器中退出3.1.3间接寻址方式指令中给出的操作数既不是立即数也不是直接地址,而是将这个操作数做地址的内存单
6、元的内容作为访问地址,即指令中的操作数是一个间接地址。间接寻址为系统的编程带来了很大的灵活性和方便性。DSP芯片内有8个辅助寄存器AR0-AR7和辅助寄存器算术单元ARAU,这些寄存器专用于间接寻址操作,它可以访问64KB的寻址空间而不受数据页的限制。因此,DSP的间接寻址能力非常灵活和强大,而且寻址的速度非常快。在间接寻址时,当前AR的内容用作将被访问的数据存储器的地址。因此,当前辅助寄存器中的内容才是真正被访问的数据地址。在进行间接寻址操作的同时可以对当前辅助寄存器中的内容(即操作地址)进行修改,甚至可以改变ARP的值,为下一次的
7、间接寻址操作做准备,从而极大地提高了寻址速度。退出TMS320LF240x提供了对AR的内容进行四种运算的选择:操作数选项操作数选项*不增加也不减少*0-减少变址量*+增加1*BR0+按反方进位增加变址量*-减少1*BR0-按反向进位减少变址量*0+增加变址量退出【例7】当前AR不增不减ADD*,8;把当前AR指定的数据存储单元的内容左移8位;后加至累加器中【例8】当前AR增加1ADD*+,8,AR4;把当前AR指定的数据存储单元的内容左;移8位后加至累加器中,当前AR内容加1,;指定下条指令的当前辅助寄存器为AR4【例9】当前AR减
8、去1ADD*-,8;把当前AR指定的数据存储单元的内容左移8;位后加至累加器中,当前AR内容减1退出【例10】当前AR增加一个变址量ADD*0+,8;把当前AR指定的数据存储单元的内容左移8;位后加至累加器中,AR0的内
此文档下载收益归作者所有