欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    DSP例程学习教程.pptx

    • 资源ID:89966515       资源大小:2.14MB        全文页数:117页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DSP例程学习教程.pptx

    3.1 TMS320LF240 x的寻址方式 DSPDSP系统也具有计算机的一般特性,其完成的任务是采样、运算和输出的功系统也具有计算机的一般特性,其完成的任务是采样、运算和输出的功能,即从某个地址单元能,即从某个地址单元(片内或片外片内或片外)取数据,然后按照一定的规则进行运算,最取数据,然后按照一定的规则进行运算,最后将运算的结果存放到某个地址单元来输出。因此,在程序中如何寻址和表达数后将运算的结果存放到某个地址单元来输出。因此,在程序中如何寻址和表达数据的地址是软件系统的关键问题。据的地址是软件系统的关键问题。TMS320LF240 x TMS320LF240 x的程序采用了三种基本的寻址方式:立即寻址、直接寻址和的程序采用了三种基本的寻址方式:立即寻址、直接寻址和间接寻址。间接寻址。3.1.1 立即寻址方式 指令操作所需要的数就在本指令中,这个数也称为立即数。立即寻址的操指令操作所需要的数就在本指令中,这个数也称为立即数。立即寻址的操作数分为短立即数和长立即数,因此相应的寻址方式也有短立即数寻址和长立作数分为短立即数和长立即数,因此相应的寻址方式也有短立即数寻址和长立即数寻址。即数寻址。第1页/共117页【例1】采用采用8 8位短立即数寻址的位短立即数寻址的RPTRPT指令,需要重复执行的次数包含在指令操指令,需要重复执行的次数包含在指令操作码后。作码后。RPT#k ;8RPT#k ;8位短立即数寻址位短立即数寻址 第2页/共117页【例2】采用采用9 9位短立即数寻址的位短立即数寻址的RPTRPT指令,需要重复执行的次数包含在指令操指令,需要重复执行的次数包含在指令操作码后。作码后。RPT#k ;9RPT#k ;9位短立即数寻址位短立即数寻址 第3页/共117页【例3】采用采用1313位短立即数寻址的位短立即数寻址的RPTRPT指令,需要重复执行的次数包含在指令指令,需要重复执行的次数包含在指令操作码后。操作码后。RPT#k ;13RPT#k ;13位短立即数寻址位短立即数寻址 第4页/共117页【例4】采用采用1616位长立即数寻址的位长立即数寻址的ADDADD指令。指令。ADD#1k,2 ;ADD#1k,2 ;将立即数将立即数1k1k左移左移2 2位后与累加器中位后与累加器中 ;的内容相加,结果存累加器中的内容相加,结果存累加器中 第5页/共117页3.1.2 直接寻址方式 操作地址就在指令中,按照该地址可以直接访问寄存器,这个地址也称为直操作地址就在指令中,按照该地址可以直接访问寄存器,这个地址也称为直接地址。接地址。在在DSPDSP程序中,直接寻址通常是将指令中的程序中,直接寻址通常是将指令中的数据页指针数据页指针DPDP和操作数合并起和操作数合并起来来作为被访问的地址。每页的具体操作地址的高作为被访问的地址。每页的具体操作地址的高9 9位是由数据页指针位是由数据页指针DPDP决定;低决定;低7 7位位(又称偏移地址量又称偏移地址量)是由指令操作数决定,它处于指令寄存器的最低是由指令操作数决定,它处于指令寄存器的最低7 7位有效位有效位上。位上。DPDP指针与偏移地址量共同构成指针与偏移地址量共同构成1616位的指令操作地址。位的指令操作地址。第第15158 8位为指令的操作码;第位为指令的操作码;第7 7位为直接位为直接/间接寻址指示符,为间接寻址指示符,为0 0是直接寻址;是直接寻址;第第6 60 0位为偏移地址量。位为偏移地址量。第6页/共117页因此,在使用直接寻址方式时,应按下述步骤进行:因此,在使用直接寻址方式时,应按下述步骤进行:(1)(1)设置数据页面。设置数据页面。将页值加载到将页值加载到DPDP,加载时可使用,加载时可使用LDPLDP指令。指令。LDPLDP指令可直接加指令可直接加载载DPDP而不影响而不影响ST0ST0的其他位,该指令明确指出加载到的其他位,该指令明确指出加载到DPDP的值,例如把当前数据页的值,例如把当前数据页设置成设置成32(32(地址地址1000h1000h107Fh)107Fh),可使用如下指令。,可使用如下指令。LDP#32 ;LDP#32 ;加载数据页指针加载数据页指针(2)(2)指定偏移量。指定偏移量。提供提供7 7位偏移量作为指令的操作数。例如将当前数据页的第位偏移量作为指令的操作数。例如将当前数据页的第2 2个个地址中的数据加到地址中的数据加到ACCACC时。时。ADD 1h;ADD 1h;将当前数据页中偏移量为将当前数据页中偏移量为1 1处的数据加到处的数据加到ACCACC 如果在一段代码块中所有的指令都访问的是同一数据页,则只需在该块代码如果在一段代码块中所有的指令都访问的是同一数据页,则只需在该块代码的前面加载一次的前面加载一次DPDP即可;如果代码块中需要访问不同的数据页,则每当访问新的即可;如果代码块中需要访问不同的数据页,则每当访问新的数据页时需确保加载相应的数据页时需确保加载相应的DPDP。第7页/共117页【例5】采用直接寻址的采用直接寻址的ADDADD指令。指令。LDP#4 ;LDP#4 ;设置数据页为设置数据页为4(4(地址地址0200h-027Fh)0200h-027Fh)ADD 9h,5 ;ADD 9h,5 ;将数据地址将数据地址0209h0209h单元的内容左移单元的内容左移5 5位后加至位后加至ACCACC第8页/共117页【例6】使用直接寻址的使用直接寻址的ADDCADDC指令。指令。LDP#500;LDP#500;设置数据页为设置数据页为500(500(地址地址FA00h-FA7Fh)FA00h-FA7Fh)ADDC 6h ;ADDC 6h ;数据寄存器地址数据寄存器地址FA06hFA06h单元的内容和进位值单元的内容和进位值(C)(C);一起加至累加器中一起加至累加器中第9页/共117页3.1.3 间接寻址方式 指令中给出的操作数既不是立即数也不是直接地址,而是将这个操作数做指令中给出的操作数既不是立即数也不是直接地址,而是将这个操作数做地址的内存单元的内容作为访问地址,即指令中的操作数是一个间接地址。间接地址的内存单元的内容作为访问地址,即指令中的操作数是一个间接地址。间接寻址为系统的编程带来了很大的灵活性和方便性。寻址为系统的编程带来了很大的灵活性和方便性。DSP DSP芯片内有芯片内有8 8个辅助寄存器个辅助寄存器AR0-AR7AR0-AR7和辅助寄存器算术单元和辅助寄存器算术单元ARAUARAU,这些资源专,这些资源专用于间接寻址,它可以访问用于间接寻址,它可以访问64KB64KB的寻址空间而不受数据页的限制。因此,的寻址空间而不受数据页的限制。因此,DSPDSP的间的间接寻址能力非常灵活和强大,而且寻址的速度非常快。接寻址能力非常灵活和强大,而且寻址的速度非常快。在间接寻址时,当前在间接寻址时,当前ARAR的内容用作将被访问的数据存储器的地址。因此,当的内容用作将被访问的数据存储器的地址。因此,当前辅助寄存器中的内容才是真正被访问的数据地址。前辅助寄存器中的内容才是真正被访问的数据地址。在进行间接寻址操作的同时可以对当前辅助寄存器中的内容在进行间接寻址操作的同时可以对当前辅助寄存器中的内容(即操作地址即操作地址)进进行修改,甚至可以改变行修改,甚至可以改变ARPARP的值,为下一次的间接寻址操作做准备,从而极大地的值,为下一次的间接寻址操作做准备,从而极大地提高了寻址速度。提高了寻址速度。第10页/共117页TMS320LF240 xTMS320LF240 x提供了对提供了对ARAR的内容进行四种运算的选择:的内容进行四种运算的选择:操作数操作数选选 项项操作数操作数选选 项项*不增加也不减少不增加也不减少*0 0减少变址量减少变址量*+增加增加1 1*BR0+BR0+按反方进位增加变按反方进位增加变址量址量*减少减少1 1*BR0BR0按反向进位减少变按反向进位减少变址量址量*0+0+增加变址量增加变址量第11页/共117页【例7】当前当前ARAR不增不减不增不减 ADD *,8 ;ADD *,8 ;把当前把当前ARAR指定的数据存储单元的内容左移指定的数据存储单元的内容左移8 8位位 ;后加至累加器中后加至累加器中【例8】当前当前ARAR增加增加1 1 ADD *+,8,AR4 ;ADD *+,8,AR4 ;把当前把当前ARAR指定的数据存储单元的内容左指定的数据存储单元的内容左 ;移移8 8位后加至累加器中,当前位后加至累加器中,当前ARAR内容加内容加1 1,;指定下条指令的当前辅助寄存器为指定下条指令的当前辅助寄存器为AR4AR4【例9】当前当前ARAR减去减去1 1 ADD *ADD *,8 ;,8 ;把当前把当前ARAR指定的数据存储单元的内容左移指定的数据存储单元的内容左移8 8 ;位后加至累加器中,当前位后加至累加器中,当前ARAR内容减内容减1 1第12页/共117页【例10】当前当前ARAR增加一个变址量增加一个变址量 ADD *0+,8 ;ADD *0+,8 ;把当前把当前ARAR指定的数据存储单元的内容左移指定的数据存储单元的内容左移8 8 ;位后加至累加器中,位后加至累加器中,AR0AR0的内容加到当前的内容加到当前AR AR【例11】当前当前ARAR减去一个变址量减去一个变址量 ADD *0ADD *0,8 ;,8 ;把当前把当前ARAR指定的数据存储单元的内容左移指定的数据存储单元的内容左移8 8 ;位后加至累加器中,当前位后加至累加器中,当前ARAR的内容减去的内容减去AR0AR0 ;内容内容第13页/共117页3.2 TMS320LF240 x的汇编指令 汇编语言是汇编语言是DSPDSP应用软件的基础,使用汇编语言时必须要符合规定的格式,应用软件的基础,使用汇编语言时必须要符合规定的格式,只有这样汇编器才能将源文件转换为机器语言的目标文件。只有这样汇编器才能将源文件转换为机器语言的目标文件。1 1汇编语言源程序的标准格式汇编语言源程序的标准格式 汇编语句格式一般包含汇编语句格式一般包含4 4部分:标号、指令、操作数和注释,以助记符指令部分:标号、指令、操作数和注释,以助记符指令为例,格式如下为例,格式如下 标号标号:指令指令 操作数操作数 ;注释注释 其中其中 内的内容为可选项。内的内容为可选项。在编写汇编语句时,必须遵循以下格式:在编写汇编语句时,必须遵循以下格式:(1)(1)语句必须以标号、空格、星号或分号开始。语句必须以标号、空格、星号或分号开始。第14页/共117页(2)(2)若使用标号,则必须从第若使用标号,则必须从第1 1列开始。标号长度最多为列开始。标号长度最多为3232个字符,由个字符,由A-ZA-Z、a-za-z、0-90-9、_ _和和$等组成,但第等组成,但第1 1个字符不能为数字。标号后可以跟一个冒号个字符不能为数字。标号后可以跟一个冒号(:)(:),但并,但并不作为标号的一部分。不作为标号的一部分。(3)(3)每部分必须由每部分必须由1 1个或多个空格分开。个或多个空格分开。(4)(4)开始于第开始于第1 1列的注释须用星号列的注释须用星号(*)(*)或分号或分号(;)(;)标示,但在其他列开始的注释前标示,但在其他列开始的注释前面只能用分号。面只能用分号。(5)(5)指令一定不能从第指令一定不能从第1 1列开始,否则将被视为标号。指令包括助记符指令、汇列开始,否则将被视为标号。指令包括助记符指令、汇编伪指令编伪指令(如如.data.data,.set).set)等。等。(6)(6)操作数可以为列表形式,汇编器允许使用常数、符号或表达式作为地址、操作数可以为列表形式,汇编器允许使用常数、符号或表达式作为地址、立即数或间接寻址。当操作数为立即数时,使用立即数或间接寻址。当操作数为立即数时,使用#号作为前缀;操作数为间接号作为前缀;操作数为间接寻址时,使用寻址时,使用*号,将操作数的内容作为地址。号,将操作数的内容作为地址。第15页/共117页2 2汇编语言的指令集汇编语言的指令集 TMS320LF240 x TMS320LF240 x的汇编语言共的汇编语言共8686条,分为条,分为6 6大类,分别是累加器、算术和逻大类,分别是累加器、算术和逻辑指令;辅助寄存器和数据页指针指令;辑指令;辅助寄存器和数据页指针指令;TREGTREG、PREGPREG和乘法指令;跳转指令;和乘法指令;跳转指令;控制指令;控制指令;I/OI/O和存储器操作指令。和存储器操作指令。3 3汇编指令的语法和说明汇编指令的语法和说明 在介绍汇编指令之前,先把所用到的主要操作数做一规定:在介绍汇编指令之前,先把所用到的主要操作数做一规定:dmadma:数据存储器地址的低:数据存储器地址的低7 7位位(LSB)(LSB)shiftshift:左移位数:左移位数0 01515n n:指定下一次的辅助寄存器:指定下一次的辅助寄存器ARPARP值值(0(07)7)k k:8 8位短立即数位短立即数1k1k:1616位长立即数位长立即数indind:是一个间接寻址变量,可取:是一个间接寻址变量,可取*、*+、*、*0+0+、*0 0、*BR0+BR0+、*BR0BR0第16页/共117页(1)ABS(1)ABS(累加器取绝对值累加器取绝对值)语法语法:ABSABS 说明说明:计算计算ACCACC的绝对值,进位位的绝对值,进位位C C置置0 0。指令受。指令受OVMOVM状态标志位影响,执行的结果状态标志位影响,执行的结果影响影响C C和和OVOV。如果。如果ACCACC的内容大于或等于的内容大于或等于0 0,执行指令后其内容不变;,执行指令后其内容不变;若累加器内若累加器内容小于容小于0 0,执行指令后用其对,执行指令后用其对2 2的补码数的补码数(即它的绝对值即它的绝对值)取代原来的值取代原来的值。ACC=8000 0000h ACC=8000 0000h时为特殊情况,若溢出方式位时为特殊情况,若溢出方式位OVM=0OVM=0,对,对8000 0000h8000 0000h取绝对值取绝对值(执行执行ABSABS指令指令)的结果是的结果是8000 0000h8000 0000h;若溢出方式位;若溢出方式位OVM=1OVM=1,对,对8000 0000h8000 0000h取绝对取绝对值的结果是值的结果是7FFF FFFFh7FFF FFFFh,无论哪种情况下,状态位,无论哪种情况下,状态位OVOV都置都置1 1。第17页/共117页【例例3-143-14】ABS【例例3-153-15】ABS ;(OVM=0)ABS ;(OVM=0)第18页/共117页(2)ADD (2)ADD 累加器加累加器加 语法语法:ADD dma,shift ADD dma,shift 直接寻址直接寻址 ADD dma,16 ADD dma,16 左移左移1616位直接寻址位直接寻址 ADD ind,shift,ARn ADD ind,shift,ARn 间接寻址间接寻址 ADD ind,16,ARn ADD ind,16,ARn 左移左移1616位间接寻址位间接寻址 ADD#k ADD#k 短立即数寻址短立即数寻址 ADD#1k,shift ADD#1k,shift 长立即数寻址长立即数寻址 说明说明:被寻址的数据单元的内容或一个立即数左移后加到累加器,在移位时被寻址的数据单元的内容或一个立即数左移后加到累加器,在移位时低位填低位填0 0。如果符号扩展方式位。如果符号扩展方式位SXM=1SXM=1,则高位进行符号扩展;如果,则高位进行符号扩展;如果SXM=0SXM=0,则,则高位填高位填0 0。如果采用间接寻址并更新如果采用间接寻址并更新ARPARP的值,此时必须指定一个的值,此时必须指定一个shift(shift(移位移位)操作操作数。如果不希望产生移位,则将数。如果不希望产生移位,则将0 0作为操作数,例如作为操作数,例如ADD *+,0,AR2ADD *+,0,AR2。第19页/共117页 通常,如果相加的结果产生进位时,通常,如果相加的结果产生进位时,C=1C=1;不产生进位时,;不产生进位时,C=0C=0。但是,但是,当左移当左移1616位进行相加时,如果相加的结果产生进位,则位进行相加时,如果相加的结果产生进位,则C=1C=1;不产生进位时,;不产生进位时,则则C C不受影响。这样,在把不受影响。这样,在把3232位数加到累加器时,可使累加器产生正确的符号位数加到累加器时,可使累加器产生正确的符号进位。进位。【例例3-17 3-17】ADD 1,1 ;DP=6:ADD 1,1 ;DP=6:地址地址0300h0300h037Fh037Fh 第20页/共117页【例例3-18 3-18】ADD *+,0,AR0ADD *+,0,AR0【例例3-19 3-19】ADD#1h ;ADD#1h ;加短立即数加短立即数 第21页/共117页(3)ADDC (3)ADDC 带进位的累加器加带进位的累加器加 语法:语法:ADDC dma ADDC dma 直接寻址直接寻址 ADDC ind,ARn ADDC ind,ARn 间接寻址间接寻址 说明:说明:将数据存储单元的内容和进位位将数据存储单元的内容和进位位C C的值加到累加器中,符号不扩展,进的值加到累加器中,符号不扩展,进位位受正常方式影响位位受正常方式影响。指令受溢出方式位。指令受溢出方式位OVMOVM位影响,执行指令的结果影响位影响,执行指令的结果影响C C和溢出标志位和溢出标志位OVOV。【例例3-21 3-21】ADDC 0 ;DP=6:ADDC 0 ;DP=6:地址地址0300h0300h037Fh037Fh 第22页/共117页【例例3-22 3-22】ADDC *ADDC *,AR4 ;OVM=0,AR4 ;OVM=0 第23页/共117页(5)ADDT TREG(5)ADDT TREG指定移位的累加器加指定移位的累加器加 语法语法:ADDT dma ADDT dma 直接寻址直接寻址 ADDT ind,ARn ADDT ind,ARn 间接寻址间接寻址说明说明:将数据存储单元的内容左移后加到累加器中,左移的位数由将数据存储单元的内容左移后加到累加器中,左移的位数由TREGTREG的低的低4 4位位(0-15)(0-15)确定确定。数据存储单元中数据的符号扩展受符号扩展方式位。数据存储单元中数据的符号扩展受符号扩展方式位SXMSXM控制。指令控制。指令受受SXMSXM和和OVMOVM位影响,执行结果影响位影响,执行结果影响C C和和OVOV。【例例3-25 3-25】ADDT 127 ;DP=4:ADDT 127 ;DP=4:地址地址0200h-027Fh0200h-027Fh;SXM=0 SXM=0 第24页/共117页【例例3-26 3-26】ADDT *ADDT *,AR4 ;SXM=0,AR4 ;SXM=0 第25页/共117页(6)ADRK (6)ADRK 辅助寄存器加短立即数辅助寄存器加短立即数 语法语法:ADRK#k ADRK#k 短立即数寻址短立即数寻址 说明说明:8 8位正整数按右对齐方式加到当前辅助寄存器中位正整数按右对齐方式加到当前辅助寄存器中,当前辅助寄存器由,当前辅助寄存器由ARPARP指定。指定。对辅助寄存器的所有运算都是无符号数运算。对辅助寄存器的所有运算都是无符号数运算。【例例3-27 3-27】ADRK#80h 第26页/共117页(7)AND (7)AND 和累加器进行与操作和累加器进行与操作 语法语法:AND dma AND dma 直接寻址直接寻址 AND ind,ARn AND ind,ARn 间接寻址间接寻址 AND#1k,shift AND#1k,shift 长立即数寻址长立即数寻址 AND#1k,16 AND#1k,16 左移左移1616位的长立即数寻址位的长立即数寻址说明说明:如果是直接或间接寻址,数据存储单元中的数和累加器的低:如果是直接或间接寻址,数据存储单元中的数和累加器的低1616位进行位进行与运算,结果放在累加器的低与运算,结果放在累加器的低1616位,位,累加器的高累加器的高1616位清位清0 0。如果是立即数寻址,。如果是立即数寻址,长立即数可以被左移,长立即数可以被左移,没有被移位数填满的高位和低位均填没有被移位数填满的高位和低位均填0 0,移位结果与累,移位结果与累加器的内容逻辑与。指令不受符号扩展位加器的内容逻辑与。指令不受符号扩展位SXMSXM影响。影响。【例例3-303-30】AND#00FFh,4 AND#00FFh,4第27页/共117页【例例3-28 3-28】AND 16 ;DP=4:AND 16 ;DP=4:地址地址0200h0200h027Fh027Fh【例例3-29 3-29】AND *AND *第28页/共117页(8)APAC PREG(8)APAC PREG加到累加器加到累加器 语法语法:APACAPAC 说明说明:PREGPREG寄存器的内容移位后加到累加器寄存器的内容移位后加到累加器,移位的位数由状态寄存器,移位的位数由状态寄存器ST1ST1中中的的PMPM位确定。指令不受符号扩展位位确定。指令不受符号扩展位SXMSXM影响,影响,PREGPREG总是进行符号扩展。指令受总是进行符号扩展。指令受PMPM和和OVMOVM位影响,结果影响位位影响,结果影响位C C和溢出标志位和溢出标志位OVOV。【例例3-313-31】APAC ;PM=01 APAC ;PM=01 第29页/共117页(9)B (9)B 无条件跳转无条件跳转 语法语法:B pma,ind,ARn B pma,ind,ARn 间接寻址间接寻址 说明说明:程序跳转到程序跳转到pmapma指定的地址指定的地址,并根据指令修改当前辅助寄存器,并根据指令修改当前辅助寄存器(ARP)(ARP)。pmapma值既可以是一个标号,也可是一个数字地址。值既可以是一个标号,也可是一个数字地址。【例例3-323-32】B 191,*+,AR1 B 191,*+,AR1 将将191191加载到程序计数器,并且程序从该地址继续执行,当前辅助寄加载到程序计数器,并且程序从该地址继续执行,当前辅助寄存器加存器加1 1,并且,并且ARPARP被设置为指向辅助寄存器被设置为指向辅助寄存器1(AR1)1(AR1)。(10)BACC (10)BACC 跳转到累加器指定的地址跳转到累加器指定的地址语法语法:BACCBACC说明说明:程序跳转到累加器低:程序跳转到累加器低1616位所指定的地址位所指定的地址。【例例3-333-33】BACC ;BACC ;假设假设ACCACC低低1616位为位为191191将数值将数值191191加到程序计数器,并且程序从该地址继续执行。加到程序计数器,并且程序从该地址继续执行。第30页/共117页(11)BANZ (11)BANZ 辅助寄存器非辅助寄存器非0 0跳转跳转 语法语法:BANZ pma,ind,ARn BANZ pma,ind,ARn 间接寻址间接寻址 说明说明:如果当前辅助寄存器的值如果当前辅助寄存器的值(AR)(AR)不为不为0 0,则程序跳转到,则程序跳转到pmapma指定的地址指定的地址(pmapma值既可以是一个标号,也可以是一个数字地址),否则执行下一条指令值既可以是一个标号,也可以是一个数字地址),否则执行下一条指令。根据指令修改当前辅助寄存器根据指令修改当前辅助寄存器(ARP)(ARP)和和ARAR内容内容(缺省时减缺省时减1)1)。该指令常用于控制。该指令常用于控制循环体的执行,如果要使循环体执行循环体的执行,如果要使循环体执行N N次,则可在循环体执行前将用于计数的次,则可在循环体执行前将用于计数的辅助寄存器初始化为辅助寄存器初始化为N-1N-1第31页/共117页【例例3-343-34】BANZ PGM0 ;PGM0 BANZ PGM0 ;PGM0为标号为标号 因为因为AR0AR0的内容不为的内容不为0 0,则将,则将PGM0PGM0的地址加载到程序计数器的地址加载到程序计数器(PC)(PC),程序从该,程序从该处运行。对当前处运行。对当前ARAR减减1 1,变为,变为4h4h。因为因为AR0AR0的内容为的内容为0 0,所以不跳转,而是将,所以不跳转,而是将PCPC加加2 2,即继续执行,即继续执行BANZBANZ后面的后面的指令。当前指令。当前ARAR减减1 1,变为,变为FFFFhFFFFh。第32页/共117页【例例3-35 3-35】编制一个循环体程序,将数据存储单元编制一个循环体程序,将数据存储单元0060h0060h0063h0063h的内容加到累的内容加到累加器中。加器中。MAR *,AR0 ;MAR *,AR0 ;设置设置ARPARP指向指向AR0AR0 LAR AR1,#3 ;LAR AR1,#3 ;加载加载3 3到到AR1AR1,循环,循环3 3次次 LAR AR0,#60h;LAR AR0,#60h;加载加载60h60h到到AR0AR0PGM191PGM191:ADD *+,AR1 ;ADD *+,AR1 ;将将AR0AR0指向的地址中数据加到指向的地址中数据加到ACCACC,;并且并且AR0AR0值加值加1 1,ARPARP指向指向AR1AR1 BANZ PGM191,*-,AR0;AR1 BANZ PGM191,*-,AR0;AR1不为不为0 0时循环,时循环,AR1AR1值减值减1 1,;ARP ;ARP指向指向AR0AR0第33页/共117页(12)BCND (12)BCND 条件跳转条件跳转 语法语法:BCND pma,cond1,cond2,BCND pma,cond1,cond2,说明说明:如果指定的:如果指定的条件都满足条件都满足,则程序跳转到,则程序跳转到pmapma指定的地址;若条件不满足,指定的地址;若条件不满足,则执行下一条指令。则执行下一条指令。无条件无条件无条件无条件UNCUNC进位位被清进位位被清0 0C=0C=0NCNC测试测试/控制标志位被置控制标志位被置1 1TC=1TC=1TCTC累加器的值大于或等于累加器的值大于或等于0 0ACC0ACC0GEQGEQ测试测试/控制标志位被清控制标志位被清0 0TC=0TC=0NTCNTC累加器的值大于累加器的值大于0 0ACC0ACC0GTGT引脚为低电平引脚为低电平BIOBIO为为0 0累加器的值小于或等于累加器的值小于或等于0 0ACC0ACC0LEQLEQ溢出标志位置溢出标志位置1 1OV=1OV=1OVOV累加器的值小于累加器的值小于0 0ACC0ACC0LTLT溢出标志位清溢出标志位清0 0OV=0OV=0NOVNOV累加器的值不等于累加器的值不等于0 0ACC0ACC0NEQNEQ进位位被置进位位被置1 1C=1C=1C C累加器的值等于累加器的值等于0 0ACC=0ACC=0EQEQ说说 明明条件条件操作数操作数符号符号说说 明明条件条件操作数操作数符号符号第34页/共117页【例例3-363-36】BCND PGM191,LEQ,C BCND PGM191,LEQ,C 如果累加器的内容小于或等于如果累加器的内容小于或等于0 0,且进位位为,且进位位为1 1,则程序跳转到,则程序跳转到PGM191PGM191指定的指定的地址;若条件不满足,则程序从地址;若条件不满足,则程序从PC+2PC+2处继续执行。处继续执行。(13)BIT (13)BIT 位测试位测试语法语法:BIT dma,bit code BIT dma,bit code 直接寻址直接寻址 BIT ind,bit code,ARn BIT ind,bit code,ARn 间接寻址间接寻址 说明说明:将数据存储单元中的:将数据存储单元中的指定位复制到状态寄存器指定位复制到状态寄存器ST1ST1的的TCTC位位。指定的位号。指定的位号为为1515bit codebit code。结果影响状态标志位。结果影响状态标志位TCTC。第35页/共117页【例例3-373-37】BIT 0h,15;DP=6,BIT 0h,15;DP=6,测试测试300h300h中数值的最低位中数值的最低位【例例3-38 3-38】BIT *,0,AR1 ;BIT *,0,AR1 ;测试测试310h310h中数值的最高位,然后设置中数值的最高位,然后设置ARP=1ARP=1第36页/共117页(14)BITT TREG(14)BITT TREG指定位测试指定位测试 语法语法:BITT dma BITT dma 直接寻址直接寻址 BITT ind,ARn BITT ind,ARn 间接寻址间接寻址说明说明:将数据存储单元中数的被:将数据存储单元中数的被指定位复制到状态寄存器指定位复制到状态寄存器ST1ST1的的TCTC位。指定位。指定的位号为的位号为1515TREG(3:0)TREG(3:0),即,即1515减去减去TREGTREG寄存器的低寄存器的低4 4位值。结果影响状态位值。结果影响状态标志位标志位TCTC。【例例3-393-39】BITT 0h ;DP=6 BITT 0h ;DP=6,测试数据的第,测试数据的第1414位位 第37页/共117页【例例3-403-40】BITT *;BITT *;测试测试310h310h地址处数据的第地址处数据的第1 1位位第38页/共117页(17)CALA (17)CALA 累加器指定地址的子程序调用累加器指定地址的子程序调用语法语法:CALACALA说明说明:当前程序计数器:当前程序计数器(PC)+1(PC)+1后压入堆栈顶后压入堆栈顶(TOS)(TOS),然后将,然后将累加器的低累加器的低1616位加载到位加载到PCPC,程序从该地址执行。,程序从该地址执行。【例例3-453-45】CALA CALA 第39页/共117页(18)CALL (18)CALL 无条件调用无条件调用 语法语法:CALL pma,ind,ARn CALL pma,ind,ARn 带长立即数源的间接寻址带长立即数源的间接寻址 说明说明:当前程序计数器:当前程序计数器(PC)+2(PC)+2后压入堆栈顶后压入堆栈顶(TOS)(TOS),然后将,然后将pmapma值加载到值加载到PCPC,程序从该处执行,并按指定的方式修改当前程序从该处执行,并按指定的方式修改当前ARAR和和ARPARP。【例例3-463-46】CALL 191,*+,AR0 CALL 191,*+,AR0第40页/共117页(19)CC (19)CC 条件调用条件调用 语法语法:CC pma,cond1,cond2,CC pma,cond1,cond2,说明说明:如果:如果指定的条件都得到满足指定的条件都得到满足,则将返回地址,则将返回地址(PC+2)压入堆栈顶,把压入堆栈顶,把pmapma值加载到值加载到PCPC,实现程序调用;若条件不满足,则,实现程序调用;若条件不满足,则PCPC加加2 2。【例例3-473-47】CC PGM191,LEQ,C CC PGM191,LEQ,C 若累加器的内容小于或等于若累加器的内容小于或等于0 0,且进位位,且进位位C C为为1 1,则将,则将0BFh(191)0BFh(191)装入装入PCPC,程序从该处执行;若这些条件不同时满足,则从程序从该处执行;若这些条件不同时满足,则从CCCC指令后的指令继续执行。指令后的指令继续执行。第41页/共117页(20)CLRC (20)CLRC 控制位清控制位清0 0语法语法:CLRC CLRC 控制位控制位 说明说明:将:将指定的控制位清指定的控制位清0 0,控制位包括:,控制位包括:C C、CNFCNF、INTMINTM、OVMOVM、SXMSXM、TCTC、XFXF。(21)CMPL (21)CMPL 累加器逻辑取反累加器逻辑取反 语法语法:CMPLCMPL说明说明:将累加器逻辑取反,进位位不受影响。:将累加器逻辑取反,进位位不受影响。【例例3-49 3-49】CMPL CMPL第42页/共117页(22)CMPR (22)CMPR 辅助寄存器与辅助寄存器与AR0AR0比较比较 语法语法:CMPR CM ;CM=0-3CMPR CM ;CM=0-3说明说明:根据:根据CMCM值指定值指定的的比较条件比较条件,比较当前辅助寄存器和,比较当前辅助寄存器和AR0AR0值的大小,比值的大小,比较较结果存入状态寄存器结果存入状态寄存器ST1ST1的的TCTC位位。如果比较条件成立。如果比较条件成立TC=1TC=1;否则;否则TC=0TC=0。比。比较时辅助寄存器的值以无符号操作数形式参与。较时辅助寄存器的值以无符号操作数形式参与。CMCM说说 明明0 0测试当前测试当前ARAR是否等于是否等于AR0AR01 1测试当前测试当前ARAR是否小于是否小于AR0AR02 2测试当前测试当前ARAR是否大于是否大于AR0AR03 3测试当前测试当前ARAR是否不等于是否不等于AR0AR0第43页/共117页【例例3-503-50】CMPR 2 ;CMPR 2 ;当前当前ARAR值大于值大于AR0AR0否?否?第44页/共117页(27)LACC (27)LACC 带移位的累加器带移位的累加器装载装载 语法语法:LACC dma,shift LACC dma,shift 直接寻址直接寻址 LACC dma,16 LACC dma,16 左移左移1616位直接寻址位直接寻址 LACC ind,shift,ARn LACC ind,shift,ARn 间接寻址间接寻址 LACC ind,16,ARn LACC ind,16,ARn 左移左移1616位间接寻址位间接寻址 LACC#1k,shift LACC#1k,shift 长立即数寻址长立即数寻址说明说明:指定的数据存储单元的内容或一个:指定的数据存储单元的内容或一个1616位常数左移并位常数左移并加载加载到累加器中。到累加器中。左移位时低位填左移位时低位填0 0。指令受。指令受SXMSXM影响,若影响,若SXM=1SXM=1,高位进行符号扩展;若,高位进行符号扩展;若SXM=0SXM=0,高位填,高位填0 0。【例例3-573-57】LACC 6,4 ;DP=8:LACC 6,4 ;DP=8:地址地址0400h0400h047Fh;SXM=0047Fh;SXM=0第45页/共117页【例例3-583-58】LACC *,4 ;SXM=0 LACC *,4 ;SXM=0【例例3-593-59】LACC#0F000h,1 ;SXM=1,LACC#0F000h,1 ;SXM=1,符号扩展符号扩展第46页/共117页(28)LACL (28)LACL 装载累加器低装载累加器低1616位,高位,高1616位清位清0 0语法语法:LACL dma LACL dma 直接寻址直接寻址 LACL ind,ARn LACL ind,ARn 间接寻址间接寻址 LACL#k LACL#k 短立即数寻址短立即数寻址 说明说明:指定数据存储单元的内容或一个短立即数:指定数据存储单元的内容或一个短立即数加载加载到累加器的低到累加器的低1616位,位,累加器的高位填累加器的高位填0 0。加载的数据被看作是一个无符号数。无论加载的数据被看作是一个无符号数。无论SXMSXM为何值,为何值,都不进行符号扩展都不进行符号扩展。加载数为。加载数为8 8位短立即数时,高位短立即数时,高8 8位为位为0 0,因此,装载,因此,装载到到ACCACC后,后,ACCACC的高的高2424位为位为0 0。【例例3-603-60】LACL 1 ;DP=6:LACL 1 ;DP=6:地址地址0300h0300h037Fh037Fh 第47页/共117页【例例3-613-61】LACL *LACL *,AR4,AR4【例例3-623-62】LACL#10h LACL#10

    注意事项

    本文(DSP例程学习教程.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开