欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    DSP课件第五章TMS320LF240x汇编指令系统.ppt

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

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

    DSP课件第五章TMS320LF240x汇编指令系统.ppt

    第5章 TMS320LF240 x汇编指令系统,4.1.1 指令集分类,(1)累加器、算术和逻辑指令(26条)(2)辅助寄存器和数据页面指针指令(6条)(3)TREG、PREG和乘法指令(20条)(4)转移指令(12条)(5)控制指令(15条)(6)I/O和存储器操作指令(8条),4.1 汇编指令集概述,4.1.2 指令常用符号定义,ACC 累加器。AR 辅助寄存器。ARX LAR和SAR指令中使用的3位的值,表示要加载(LAR)或要保存(SAR)哪个辅助寄存器的值。BITX 在BIT测试指令中出现,代表4位二进制数,表示测试数据存储 单元的某一位,若测试D1位,则BITX为1110(1110B=15-1)。CM 一个2位的值。CM=00-测试是否当前AR=AR0 CM=01-测试是否当前ARAR0 CM=11-测试是否当前ARAR0,IAAA AAAA 左边的I表示1位,反映使用直接寻址(I=0)还是间接 寻址(I=1)。当使用直接寻址时,7个A 是数据存储器 地址的低7位;对于间接寻址,7个A 是控制辅助寄存 器操作的7位。IIII IIII 短立即寻址中使用的8位常数。I IIII IIII LDP指令在短立即寻址中使用的9位常数。I IIII IIII IIII MPY指令在短立即寻址中使用的13位常数。INTR#表示数值031的5位值。INTR指令使用该值把程序转移 到32个中断矢量地址之一。PM SPM指令拷贝到状态寄存器ST1中PM位的2位值。SHF 3位的左移值。SHFT 4位的左移值。,TP 条件执行指令用来表示以下4种条件的2位值。BIO引脚为低-TP=00;TC=1-TP=01;TC=0-TP=10;无条件-TP=11。ZLVC ZLVC 两个4位字段,每位表示以下条件:ACC=0-Z;ACC0-L;溢出-V;进位-C+1word 双字操作码的第2个字。包含16位常数。根据指令不同该 常数可能是长立即数、程序存储器地址、I/O端口或I/O映 射的寄存器地址。,语法,指令助记符;操作数缺省指令助记符 dma,shift;左移015位直接寻址指令助记符 dma,16;左移16位直接寻址指令助记符 ind,shift,ARn;左移015位间接寻址指令助记符 ind,16,ARn;左移16位间接寻址指令助记符#k;短立即寻址指令助记符#lk,shift;左移015位长立即寻址,4.2 指令句法描述,说明,(1)指令助记符是指令中的关键字,表示本条指令的操作类型,不能缺省。(2)指令助记符与操作数之间要用空格分开,各操作数之间要用“,”分开,操作数可缺省。黑体字符表示在该类型的指令中必须写出的字符,其他字符为变量,指令中用数字和字符代替。各字符的含义如下:,dma 数据存储器地址的低7位,与数据页面指针(DP)构成一个完 整的16位数据存储器地址。shift 左移015位。ARn n为07,ARn指定下次的辅助寄存器。Ind 选择*、*+、*-、*0+、*0-、*BR0+、*BR0-7中符号之一。#立即寻址方式中常用的前缀。数值前面带“#”,表示该数值为一 个立即数;数值前面不带“#”,表示该数值为数据存储器地址的 低7位。k 8位短立即数lk 16位长立即数,x 操作数x 是可选项x1,x2 操作数x1、x2是可选项,操作部分提供了指令完成的操作序列,即描述当指令执行时所进行的处理过程。(r)寄存器或存储单元r的内容xy 数值x被赋予寄存器或存储单元yr(n:m)寄存器或存储单元r中的位n到位m(r(n:m))寄存器或存储单元r中的位n到位m的内容 nnh 指出nn表示一个十六进制数,4.2.2 操作,4.2.3 举例,ADD*+,0,AR0,4.3 指令集,1、取累加器绝对值指令 ABS句法:ABS功能:对累加器ACC的内容取绝对值后送回累加器,并将进位位C清0操作:(PC)+1PC;(ACC)ACC;0 C例1:ABS,2、带移位的加法指令ADD句法:ADD dma,shift ADD dma,16 ADD ind,shift,ARn ADD ind,16,ARn ADD#k ADD#lk,shift功能:将被寻址的数据存储器单元的内容或立即数左移016位后加到累加器 中,移位时低位填0,高位填0(SXM=0)或符号扩展(SXM=1)操作:(PC)+1PC;(ACC)+(数据存储器地址)*2shift)ACC或(ACC)+k ACC 或(ACC)+lk*2shift ACC,例2:ADD 1,1;设DP=6,则数据存储器地址为0300h037Fh,(ACC)+(数据存储器0301h)*21 ACC例3:ADD*+,0,AR0例4:ADD#1h例5:ADD#1111h,1,3、带进位加法指令ADDC句法:ADDC dmaADDC ind,ARn功能:将被寻址的数据存储器单元的内容与累加器的内容及进位位相 加,结果送至累加器。操作:(PC)+1PC;(ACC)+(数据存储器地址)+(C)ACC状态位:影响C和OV位,受OVM状态位影响,不受SXM影响。若相加结果产生进位,则C=1,否则C=0。,例6:ADDC DAT300例7:ADDC*-,AR4;(设OVM=0),将当前AR指定的数据存储 单元的内容与累加器的内容及进位位相加 后送累加器,并将当前AR的内容减1,然 后将AR4指定为下次的辅助寄存器。,4、加法指令ADDS句法:ADDS dma ADDS ind,ARn功能:将被寻址的数据存储器单元的内容与累加器的内容相加,结果送至累加器。操作:(PC)+1PC;(ACC)+(数据存储器地址)ACC状态位:影响C和OV位,受OVM状态位影响,不受SXM影响。若相加结果产生进位,则C=1,否则C=0。,例8:ADDS 6;设DP=5,则数据存储器地址为280h2FFh,(ACC)+(数据存储器286h)ACC例9:ADDS*,5、加法指令ADDT句法:ADDT dma ADDT ind,ARn功能:将被寻址的数据存储器单元的内容左移015位后与累加器的内容相 加,结果送至累加器,移位时低位填0,高位填0(SXM=0)或符号 扩展(SXM=1)。操作:(PC)+1PC;(ACC)+(数据存储器地址)*2(TREG(30)ACC状态位:影响C和OV位,受OVM 和SXM状态位影响。若相加结果产生进位,则C=1,否则C=0。,例10:ADDT 7Eh;(设DP=4,则数据存储器地址为0200h027Fh,设SXM=0)(ACC)+(027Eh)*2(TREG(30)ACC例11:ADDT*-,AR4,6、辅助寄存器增量指令ADRK句法:ADRK#k功能:将8位立即数按右对齐方式与当前辅助寄存器AR的内容相加,结 果送至当前辅助寄存器。操作:(PC)+1PC;(当前AR)+8位立即数当前AR 例12:ADRK#80h,7、与指令AND句法:AND dma AND ind,ARn AND#lk,shift AND#lk,16功能:如果使用直接或间接寻址,累加器的低16位和被寻址的数据存储器单元的内容进行逻辑与操作,结果送累加器的低16位,累加器的高16位清0。如果使用长立即数寻址,则16位长立即数左移016位后和32位的累加器相与,结果送累加器。操作:(PC)+1PC;(ACC(150)AND(数据存储器地址)ACC(150);0 ACC(3116)(ACC(310)AND lk*2 shift ACC,例13:AND 16;设DP=4,则数据存储器地址为0200h027Fh,(ACC(150)AND(0210h)ACC(150)0 ACC(3116)例14:AND*例15:AND#00FFh,4,8、加法指令APAC句法:APAC功能:将累加器内容与移位后的乘积寄存器的内容相加,结果送至累加 器。PREG的移位方式由ST1中PM为确定。操作:(PC)+1PC;(ACC)+移位后的(PREG)ACC状态位:影响C和OV位,受OVM 和PM状态位影响。不受SXM 状态位影响。例16:APAC,9、无条件转移指令B句法:B pma,ind,ARn功能:程序无条件转移到指令指定的程序存储器地址(pma),并按指 令要求修改当前辅助寄存器和ARP的内容.操作:pmaPC(pma可以是符号地址或数值地址);按指令要求修改当前AR和ARP。例17:B 16,10、按累加器内容转移指令BACC句法:BACC功能:程序无条件转移到累加器的低16位指定的地址中执行。操作:ACC(150)PC例18:BACC;(设累加器的值是0203h)0203hPC,程序从0203h处继续 执行。,11、辅助寄存器不等于零转移指令BANZ句法:BANZ pma,ind,ARn)功能:如果当前辅助寄存器(AR)的内容不为0,则程序转移到pma指定的 程序存储器地址处继续执行;如果当前AR的内容为0,则执行下一 条指令;修改当前AR的内容。操作:若(当前AR)0,则pmaPC,否则(PC)+2PC;按指令要求的方式修改当前的AR的内容和ARP,若不指定修改当 前的AR的方式,则当前AR减半(若将当前AR作为循环计数器,可执 行(当前AR)+1次循环).例19:BANZ PGM0,12、条件转移指令BCND句法:BCND pma,cond1,cond2 操作数中的cond1,cond2,为需满足的条件。功能:如果指令中指定的条件都满足,则程序转移到指令给出的程序存 储器地址(pma),只要有一个条件不满足就顺序执行下面的指令。操作:如果cond1,cond2,均满足,则pmaPC,否则PC+2PC。注意:有些条件是不能组合在一起使用的。例20:BCND PGM191,LEQ,C,13、测试指令BIT句法:BIT dma,bit code;直接寻址 BIT ind,bit code,ARn;间接寻址功能:把数据存储单元中被指定位(即测试位)的值送到状态寄存器 ST1中的TC位,即如果测试该位为1,则TC就置1。指令中bitcode的值与数据存储单元被指定的测试位的关系 是:bit number=15-bit code操作:(PC)+IPC;(数据存储单元bit number)TC。状态位:影响TC状态位。例20:BIT*,0,AR1,14、测试指令BITT(由TREG指定bit code)句法:BITT dma;直接寻址 BITT ind,ARn;间接寻址功能:把数据存储单元中被指定位的值送到状态寄存器ST1中的TC位。TREG低4位(D3D0)表示的bit code值与数据存储单元被指定的测 试位(bit number)的关系与BIT指令相同。操作:(PC)+I PC:(数据存储单元bit number)TC。状态位:影响TC位。例21:BITT 00h,15、数据存储器串传送指令BLDD句法:BLDD 源地址,目的地址;通用格式 BLDD#lk,dma;源地址为长立即数,直接寻址 BLDD#lk,ind,ARn;源地址为长立即数,间接寻址 BLDD dma,#lk;目的地址为长立即数,直接寻址 BLDD ind,#lk,ARn;目的地址为长立即数,间接寻址功能:将“源地址”指定的数据存储器单元中的内容传送到“目 的地址”指定 的数据存储器单元中。,操作:,注意:复位时,重复计数器的RPTC的值为0,可用RPT指令装入计数值(N)。RPT指令与间接寻址方式的BLDD指令一起使用,可传送数据存储器中的 N+1个字。执行BLDD指令时,无论长立即数代表源地址,还是代表目的地址,均保存在PC中,每次重复时PC加1,从而访问一串地址(目的地址或源地址)。另一串数据的地址(源地址或目的地址)通过间接寻址,按指令指定的方式修改当前AR和ARP,从而实现两块数据区的数据传送。如果使用直接寻址,因数据地址是常量,不能改变,所以重复执行BLDD 指令的结果是仅对一个单元写数据或对一串地址写同一个数据。源数据串和目的数据串不要求同在片内或同在片外。当与RPT指令一起使用时,一旦启动了RPT流水线,BLDD就变成了单周期指令,此时中断被禁止.,例22:BLDD#300h,20h;设DP=6,则数据存储器地址为 0300h037Fh,将0300h的内容传送到320h例23:BLDD*+,#321h,AR3,16、程序存储器串传送指令BLPD句法:BLPD 源地址,目的地址;通用格式 BLPD#pma,dma;源地址为长立即数,直接寻址 BLPD dma,ind,ARn;源地址为长立即数,间接寻址功能:将“源地址”指定的程序存储单元中的内容传送到“目的地址”指定的数 据存储单元中。操作:如指令15,将第二框中“lkPC改为“pmaPC,其余均相同。,注意:BLPD指令与BLDD指令有许多相似之处,BLDD指令中的注意事 项同样适合于BLPD指令。与BLDD不同的是,BLPD指令的源地址必须使用长立即数,并固定指向程序存储器,而目的地址可由数据存储器的地址或辅助寄存器指定。当重复BLPD指令时,源地址保存在PC中,每次重复PC加1。目的地址若由辅助寄存器指定,则按指令指定方式修改,从而实现程序区到数据区的数据传送。目的地址若由数据存储器地址(常数)确定,则不能修改,此时重复执行BLPD指令将没有什么意义.,例24:BLPD#800h,00h;设DP=6,则数据存储器地址为 0300h037Fh,将程序存储器800h的内容 传送到300h例25:BLPD#800h,*,AR7,17、无条件调用指令(由累加器指定)CALA句法:CALA功能:无条件调用由累加器低16位指定的子程序。利用该指令可根据计算 结果调用子程序。操作:(PC)+1堆栈栈顶TOS;ACC的低16位PC。例26:CALA,18、子程序调用指令CALL句法:CALL pam,ind1,ARn;间接寻址功能:无条件调用由指令操作数指定的子程序,并按指令要求修改当前辅 助寄存器和ARP的内容。操作:(PC)+2堆栈栈顶TOS;pamPC;按指令要求修改(当前AR)和(ARP)。例27:CALL 191,*+,AR0,19、条件调用指令CC句法:CC pma,cond1,cond2,功能:如果指定的条件都满足,则调用pma指定则子程序。操作:如果cond1,cond2,都满足,则(PC)+2堆栈栈顶TOS,pamPC,否则PC+2。例28:CC 0BFh,LEQ,C;若累加器的内容小于或等于0,且进位位为 1,则调用程序地址0BFh 处的子程序,只要 有一个条件不满足,则继续执行CC下面的指 令。,20、清0指令CLRC句法:CLRC control bit 操作数中controlbit选择以下控制位之一:C 状态寄存器STI中的进位位(D9);CNF 状态寄存器STl中的RAM配置控制位(D12)INTM 状态寄存器ST0中的中断模式位(D9);OVM 状态寄存器ST0中的溢出模式位(D11):SXM 状态寄存器STl中的符号扩展模式位(DiO);TC 状态寄存器STl中的测试控制标志位(D11);XF 状态寄存器STl中的XF引脚状态位(D4):功能:把指定的控制位清0。操作:(PC)+1PC;0control bit。,21、累加器取反指令CMPL句法:CMPL功能:将累加器中的内容逻辑取反。操作:(PC)+1PC:(ACC)ACC。例28:CMPL,22、比较指令CMPR句法:CMPR CM功能:将当前辅助寄存器的内容与AR0的内容进行比较:若CM=0,则比较是否(当前AR)=(AR0);若CM=I,则比较是否(当前AR)(AR0);若CM=3,则比较是否(当前AR)(AR0);如果条件为真,则ST1中的TC位置1,如果条件为假,则TC清0.操作:(PC)+1PC,。完成由CM值(0-3)指定的当前AR和AR0的比较,若为真,则1TC,若为假,则 0TC。注意:比较时辅助寄存器的值作为无符号整数看待。,23、数据移动指令DMOV句法:DMOV dma;直接寻址 DMOV ind,ARn;间接寻址功能:将指定的数据存储单元的内容复制到地址加1的单元。操作:(PC)+1 PC数据;(数据存储器地址)数据存储地址+1。状态位:受CNF状态位影响。注意:DMOV指令用于片内任何配置的数据存储器RAM块,数据的移动 可以跨越块的边界。DMOV指令不能用于外部数据存储器,如果指令指定了外部存储器 地址,执行时只读指定的存储器单元,但不进行其他操作。数据移动功能对于实现数据信号处理中的Z-1延时很有用。,例29:DMOV*,AR1;将当前辅助寄存器指定的数据存储器单元 内容复制到地址加1单元,然后将下次辅助 寄存器指定为AR1,24、暂停指令IDLE句法:IDLE功能:程序停止执行,DSP芯片进入低功耗模式,直到发生硬件复位、硬件NMI或未被屏蔽的硬件中断(外部的或内部的)。操作:(PC+1)PC;等待硬件中断。状态位:受INTM的影响。注意:如果因NMI或复位使芯片退出低功耗模式,则执行0024h或0000h单元的中断服务程序。不管状态寄存器ST0中的中断模式位INTM为0或1,未被屏蔽的中断均可使芯片退出低功耗模式,但退出后的操作则取决于INTM。INTM=0,程序转移到相应的中断服务程序;INTM=I,执行IDLE后面的指令。,25、输入指令IN句法:IN dma,PA;直接寻址 IN ind,PA,ARn;间接寻址 操作数中PA表示16位I/O端口或I/O映射的寄存器地址。功能:从I/O端口读入16位数据,送到指定的数据存储单元中。重复指令(RPT)与IN指令一起使用可连续传送I/O空间的一串字到 数据存储器。操作:(PC)+2PC;(PA)数据存储器地址。例30:IN*,5h;从端口地址为5h的外设中读入一个字,并将该字保 存到由当前辅助寄存器指定的数据存储单元中,26、软中断指令INTR句法:INTR k 操作数中k为数值031,表示中断矢量号。功能:程序控制转换到与k对应的中断矢量单元(该单元存放的转移指令可引导相应的中断服务程序)。操作:(PC)+1堆栈:k值对应的中断矢量地址PC。状态位:指令影响INTM状态位,但不受INTM的影响。注意:INTR指令是软中断指令,利用该指令可从程序的任意位置转移 到任意一种中断服务程序中。INTM位和中断屏蔽位都不影响INTR指令。当响应INTR中断时,INTM位置1,禁止可屏蔽中断,但不影响 IFR标志。,27、装载累加器指令LACC句法:LACC dma,shift;直接寻址,左移015位 LACC dma,16;直接寻址,左移16位 LACC ind,shin,ARn;间接寻址,左移015位 LACC ind,16,ARn;间接寻址,左移16位 LACC#lk,shift;长立即数寻址,左移015位功能:将指定的数据存储单元的内容或16位常数左移后送累加器。移位时低位填0,高位由SXM决定,SXM=1,用符号扩展;SXM=0,则填0。操作:(PC)+1 PC 或(PC)+2 PC(长立即数寻址);(数据存储器地址)X2shiftACC 或 lkX2shiftACC(长立即数寻址)。状态位:指令受SXM影响。,例31:LACC*,4;(设SXM=0)将当前AR指定的数据存储器的内容 左移4位后送累加器,28、装载累加器低16位指令LACL句法:LACL dma;直接寻址 LACL ind,ARn;间接寻址 LACL#k;短立即数寻址功能:将指定的数据存储单元的内容或用0扩展的8位常数送到累加器的低16位,累加器的高16位填0。操作:(PC)+1 PC;直接或间接寻址(数据存储器地址)ACC(150);0 ACC(3116);或短立即数寻址 k ACC(70);0 ACC(318)。状态位:不受SXM影响。,例32:LACL#10h;将10h送到累加器的低8位,累加器的D31D8填0,29、装载累加器指令LACT(移位次数由TREG确定)句法:LACT dma;直接寻址 LACT ind,ARn;间接寻址功能:将指定的数据存储单元的内容左移后送到累加器。左移次数由 TREG的低4位确定(可移动0l5位)。移位时 低位填0,高位由SXM 决定。操作:(PC)+1 PC;(数据存储器地址)X2(TREG(3:0)ACC。状态位:受SXM影响。例33:LACT*-,AR3,30、装载辅助寄存器指令LAR句法:LAR ARx,dma;直接寻址 LAR ARx,ind,ARn;间接寻址 LAR ARx,#k;短立即数寻址 LAR ARx,#lk;长立即数寻址 操作数中x为数值07,表示要装载的辅助寄存器。功能:将指定的数据存储单元中的内容或8位、16位常数送到指令指定的辅助寄存器ARx中。不论SXM为何值,所指定的常数均为无符号整数。操作:(PC)+1PC;直接或间接寻址(数据存储器地址)ARx;或短立即数寻址 kARx(ARx的高位填0);或长立即数寻址:lkARx。注意:如果指令使用间接寻址,且指令指定的AR与ARP所指定的AR相同,LAR指令仅对该AR进行装载操作,而不对其进行增或减量修改。,30、装载辅助寄存器指令LAR句法:LAR ARx,dma;直接寻址 LAR ARx,ind,ARn;间接寻址 LAR ARx,#k;短立即数寻址 LAR ARx,#lk;长立即数寻址 操作数中x为数值07,表示要装载的辅助寄存器。功能:将指定的数据存储单元中的内容或8位、16位常数送到指令指定的辅助寄存器ARx中。不论SXM为何值,所指定的常数均为无符号整数。操作:(PC)+1PC;直接或间接寻址(数据存储器地址)ARx;或短立即数寻址 kARx(ARx的高位填0);或长立即数寻址:lkARx。注意:如果指令使用间接寻址,且指令指定的AR与ARP所指定的AR相同,LAR指令仅对该AR进行装载操作,而不对其进行增或减量修改。,例34:LAR AR4,*-例35:LAR AR0,16;设DP=6,则数据存储器地址为0300h037Fh,将310h单元的内容传送到AR0中,31、装载DP指令LDP句法:LDP dma;直接寻址 LDP ind,ARn;间接寻址 LDP#k;短立即数寻址功能:将指定的数据存储单元中的低9位或9位立即数值送到状态寄存 器ST0中的DP(LST指令也可加载DP)。操作:(PC)+1PC;(数据存储器地址)的低9位DP(直接或间接寻址)或kDP(短立即数寻址)。状态位:影响DP。例36:LDP*,AR5,32、装载PREG高16位指令LPH句法:LPH dma;直接寻址 LPH ind,ARn;间接寻址功能:将指定的数据存储单元的内容送到PREG的高16位,PREG的低 16位不变。在中断和子程序调用时,可用LPH指令恢复PREG的高 位字。操作:(PC)+1PC;(数据存储器地址)PREG(3116)。例37:LPH*,AR6;将当前AR指定的数据存储单元的内容送到PREG 高16位,AR6为下次的辅助寄存器。,33、装载状态寄存器指令LST句法:LST#m,dma;直接寻址 LST#m,ind,ARn;间接寻址 操作数m=0表示要装载ST0,m=1表示要装载ST1。功能:将指定的数据存储单元中的内容送状态寄存器ST0或ST1操作:(PC)+1PC:(数据存储器地址)状态寄存器STm。当装载ST0时,ST0的D10位和D9位不受装载影响,保持原值;当装载ST1时,ST1 的D8D5位、D3位、D2位保持1不变,数据的D15D13位同时也装载到ST0的ARP中。状态位:影响ARB,ARP,OVOVM,DP,CNF,TC,SXM,C,XF,PM。不影响INTM。注意:在间接寻址方式中,如果在操作数中指定了下次的辅助寄存器,则该指定无效,仍由数据存储单元内容中的高3位装载ARP。,例38:MAR*,AR0;0ARP,下次辅助寄存器为AR0 LST#0,*,AR1;将当前辅助寄存器AR0指定的数据存储单元的内容送到 ST0中。原ST0的D10和D9仍为原值。指定AR1为下次 辅助寄存器的操作忽略,同时原来的ARP值也不复制到 ARB中。例39:LST#1,00h,34、装载TREG指令 LT句法:LT dma;直接寻址 LT ind,ARn;间接寻址功能:将指定的数据存储单元的内容送到TREG中。操作:(PC)+1PC;(数据存储器地址)TREG。例40:LT 24;(设DP=8,则数据存储器地址为0400h047Fh)将418h单元 的内容送TREG。,35、装载TREG和乘积累加指令LTA句法:LTA dma;直接寻址 LTA ind,ARn;间接寻址功能:将指定的数据存储单元的内容送到TREG;按PM状态位指定的方式 对乘积寄存器(PREG)的内容进行移位,并把移位后的值与累加器相 加,结果送累加器。若相加结果有进位,则C=1;若相加结果无进 位,则C=0。操作:(PC)+1PC;(数据存储器地址)TREG;(ACC)+移位后的(PREG)ACC。状态位:受PM和OVM影响,影响C和OV。例41:LTA 36;(设DP=6,则数据存储器地址为0300h037Fh;PM=0,不移位)将324h单元的内容送TREG,并将PREG的内容与累加器相加,结果送累加器,36、装载TREG及数据移动,乘积累加指令LTD句法:LTD dma;直接寻址 LTD ind,ARn;间接寻址功能:将指定的数据存储单元的内容送到TREG和该地址加1的单元中;按 PM状态位指定的方式对乘积寄存器(PREG)的内容进行移位,并把移 位后的值与累加器相加,结果送累加器。若相加结果有进位,则 C=1;若相加结果没有进位,则C=0。操作:(PC)+1PC;(数据存储器地址)TREG;数据存储器地址)数据存储器地址十1;(ACC)+移位后的(PREG)ACC。状态位:受PM和OVM影响,影响C和OV。,注意:该指令适用于所有配置为数据存储器的片内RAM,并可以跨越相邻块的边界连续进行数据移动。如果将LTD指令用于外部数据存储器,其作用与LTA相同,即不执行操作(不作数据移动)。例42:LTD*,AR3:(设PM=0)将当前AR指定的数据存储单元的内容送TREG 和该地址内容相加,结果送累加器,并指定AR3为下次 AR,37、装载TREG和累加器指令LTP句法:LTP dma;间接寻址 LTP ind,ARn;直接寻址功能:将指定的数据存储单元的内容送到TREG。并将PREG的内容按PM 状态位指 定的方式移位后送到累加器中。操作:(PC)+1PC;(数据存储器地址)TREG;移位后的(PREG)ACC。状态位:受PM影响。例43:LTP 36;(设DP=6,则数据存储器地址为0300h037Fh。PM=0,乘积不移位)将324h单元的内容送TREG,并将乘积寄存器(PREG)的内容送ACC,38、装载TREG和乘积累减指令LTS句法:LTS dma;直接寻址 LTS ind,ARn;间接寻址功能:将指定的数据存储单元的内容送TREG;再用累加器的内容减去移位后(PM状态位指定的方式)的PREG的内容,结果送累加器。如果相减的结果产生借位,则进位位C清0,若无进位,则C置1。操作:(PC)+1PC;(数据存储器地址)TREG;(ACC)-移位后的(PREG)ACC。状态位:受PM和OVM影响,影响C和OV。例44:LTS*,AR2;(设PM=0,则乘积不移位)将当前AR指定的数据存储单元的内容送TREG;累加器的内容减去乘积寄存器的内容,结果送累加器,AR2为下次AR,39、累加-乘指令MAC句法:MAC pma,dma;直接寻址 MAC pma,ind,ARn;间接寻址功能:将前次乘积(PREG的内容)按PM指定的方式移位后结果送累加器。与累加器相加;如果相加产生进位,则C=I:若结果未产生进位,则C=0。将指定的数据存储单元的内容送到TREG。将TREG中数据存储单元的内容乘以指定的程序存储器地址中的内容。每重复MAC指令一次,在PC中的程序存储器地址加1。因此可以访问程序存储器中的一串操作数。如果使用间接寻址指定数据存储器地址,则每次重复时就可能访问新的数据存储器地址。如果使用直接寻址,指定的数据存储器地址是常数,重复时不对其进行修改。重复执行MAC指令可对两组数据(或一组数据与一个常数)进行乘-累加运算。重复时,RPT流水线一旦启动,它就变成了单周期指令。状态位:受PM和OVM影响,影口向C和OV。注意:MAC指令所寻址的数据和程序存储器单元可以是任意非保留的片内或片外存储单元。,例45:MAC 0FF0h,02h;(设DP=6,则数据存储器地址为0300h037Fh,PM=0,乘积不移位,CNF=1,RAMB0为程序存储器)将累加器的内容与乘积寄存器的内容相加,结果送累加器,然后将数据存储器302h单元的内容与程序存储器FF00h单元内容相乘,结果送PREG例46:MAC 0FF00h,*,AR6;(设PM=0,CNF=1)将累加器的内容与乘积寄存器的内容相加,结果送累加器,然后将当前AR指定的数据存储单元308h的内容与程序存储器FF00h单元内容相乘,结果送PREG,并指定下次的辅助寄存器为AR5,40、带数据移动的累加-乘指令 MACD句法:MACD pma,dma;直接寻址 MACD pma,ind,ARn;间接寻址功能:如果指定的数据存储器是片内RAM,则MACD指 令在MAC指令功能的基础上多一条数据移动功能,如果MACD指令寻址存储器映射的寄存器或外部数据存储器,则MACD指令与MAC指令功能完全相同。状态位:受PM和OVM影响,影响C和OV。例47:MACD 0FF00h,08h;(设DP=6,则地址为0300h037Fh;PM=0,乘积不移位;CNF=I,RAMB0配置为程序存储器)该指令将累加器的内容与乘积寄存器的内容相加,结果送累加器,然后将数据存储器308h单元的内容与程序存储器FF00h单元的内容相乘,结果送PREG,再将308h的内容送309h单元中。,41、修改当前AR和ARP指令MAR句法:MAR dma;直接寻址 MAR ind,ARn;间接寻址功能:在直接寻址方式下,MAR指令的作用同NOP指令一样,进行空操 作。在间接寻址方式下,按指令指定的方式修改辅助寄存器的值 和ARP的值,并将原来的ARP的值复制到状态寄存器ST1的ARB 字段中。操作:(PC)+1 PC:按指令指定的方式修改当前AR和ARP(只有在间接寻址方式下才 执行此操作)。状态位:直接寻址方式下不影响状态位,间接寻址方式下影响ARP和ARB。,例48:MAR*+,AR5;将当前辅助寄存器的内容加1,并将5送到ARP,ARP原来的值送到ARB,42、乘法指令MPY句法:MPY dma;直接寻址 MPY ind,ARn;间接寻址 MPY#k;短立即数寻址(k为有符号的13位常数)功能:将TREG的内容乘以指定的数据存储器单元的内容或短立即数,结果放在乘积寄存器(PREG)中。乘以短立即数时,应将13位有符 号数值取右对齐,相乘前用符号扩展(无论SXM为何值)。操作:(PC)+1 PC;(TREG)X(数据存储器地址)PREG(直接或间接寻址)或(TREG)X k PREG(短立即数寻址)。例49:MPY 13;(设DP=8,则地址为400h47Fh)将TREG的内容与数据存储器400h单元的内容相乘,结果送PREG,43、累加乘指令MPYA句法:MPYA dma;直接寻址 MPYA ind,ARn;间接寻址功能:将前次乘积(PREG的内容)按PM指定的方式移位后,与累加器 相加,结果送累加器:然后将TREG的内容乘以指定的数据存 储单元的内容,结果送乘积寄存器(PREG)。操作:(PC)+1 PC;(ACC)+移位后的(PREG)ACC;(TREG)X(数据存储器地址)PREG。状态位:受PM和OVM影响,影响C和OV。,例50:MPYA 13h;(设DP=6,则数据存储器地址为300h37Fh,PM=0,乘积不移位)将累加器的内容与乘积 寄存器的内容相加,结果送累加器,然后将 TREG的内容与数据存储器300h单元的内容相 乘,结果送PREG 例51:MPYA*,AR4,44、减乘指令MPYS句法:MPYS dma;直接寻址 MPYS ind,ARn;间接寻址功能:将累加器的内容减去前次乘积(按PM状态位指定的方式移位后的PREG的内容),结果送累加器,有借位时,标志位C清0,无借位C为1。然后将暂存寄存器(TREG)的内容乘以指定的数据存储单元的内容,结果送PREG。操作:(PC)+1 PC:(ACC)-移位后的(PREG)ACC;(TREG)X(数据存储器地址)PREG。状态位:受PM和OVM影响,影响C和OV。例52:MPYS 13;(设DP=6,则地址为300h37Fh:设PM=0,则乘积不移 位)将累加器的内容与PREG的内容相减,结果送累加器,再将TREG 的内容与数据存储器单元30Dh的内容相乘,结果送PREG,45、无符号乘法指令MPYU句法:MPYU dma;直接寻址 MPYU ind,ARn;间接寻址功能:将暂存寄存器(TREG)中的无符号数与指定的数据存储单元中的无符号数相乘,结果送乘积寄存器(PPEG)。操作:(PC)+1 PC:(TREG)X(数据存储器地址)PREG。注意:当其他指令把乘积寄存器(PREG)中的值传递到数据存储器或CALU 时,需经过乘积移位器的输出。当PM=3(右移6位)时,该移位总要将 PRE6的值进行符号扩展。因此,如果要求无符号相乘,则不能使用这 种移位模式。该指令可用于多精度乘法。如两个32位数相乘产生64位乘积。例53:MPYU 16;(设DP=4,则地址为0200h027Fh)将TREG中的无符号数 乘以数据存储器210h单元的无符号数,结果送PREG,46、累加器取指令NEG句法:NEG功能:将累加器的内容取2的补数,即转换成它的相反数。操作:(PC)+1 PC:(ACC)X(-1)ACC状态位:受OVM影响,影响C和OV。注意:当对80000000h作NEG操作时,OV位置1。若OVM=I,累加器的内容被NEG操作转换成7FFFFFFFh 若OVM=0,则累加器经过NEG操作后,仍为80000000h。只要累加器的内容不为0,进位位(C)即清0;累加器的内容为0 时,进位位C置1。例54:NEG;(OVM为任意值)将累加器的内容取补,47、非屏蔽中断指令NMI句法:NMI功能:将非屏蔽中断矢量地址24h送程序计数器执行非屏蔽中断服务程 序。与硬件非屏蔽中断NMI效果相同。操作:(PC)+1 STACK;24h PC;1 INTM。状态位:不受INTM影响,影响INTM。,48、空操作指令NOP句法:NOP功能:NOP指令仅影响PC,不进行其他操作,NOP指令可用于建立流水 线和延时。操作:(PC)+1 PC。,49、累加器规格化指令NORM句法:NORM ind功能:将累加器中的有符号数规格化。把定点数规格化就是把它分成尾数和指数两分。方法如下。将累计器的最高两位D31和D30作逻辑异或,如果两位相同,说明这是两个符号 位(符号扩展),则累计器左移去掉多余的符号位。按指定的方式修改当前AR以确定指数的大小。对当前AR默认的修改方式为加1。为了将累加器中的32位数规格化,可能需要多次执行NORM指令。NORM指令可 与RPT一起使用以实现多次执行NORM指令。NORM指令对用2的补码表示的正数或负数均适用。状态位:影响TC。注意:NORM指令在流水线的第4阶段(执行阶段)完成对辅助寄存器的操作,而其他指令在流水线的第2阶段(译码阶段)完成对辅助寄存器的操作。因此紧跟在NORM指令后的两条指令不能修改NORM指令所用的辅助寄存器的值和辅助寄存器指针(ARP)的值。,例55:NORM*+例56:31位规格化程序MAR*,AR1LAR AR1,#0hLOOP:NORM*+BCND LOOP,NTC例57:15位规格化程序MAR*,AR1LAR

    注意事项

    本文(DSP课件第五章TMS320LF240x汇编指令系统.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开