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

    TMS320C24X寻址方式和指令系统课件.ppt

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

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

    TMS320C24X寻址方式和指令系统课件.ppt

    第3章 TMS320C24X 寻址方式和指令系统,F240X系列DSP芯片采用与TMS320C240相同的核,所以两者的指令系统是相同的。,3.1 寻址方式,F240X指令集采用3种基本的存储器寻址方式:立即寻址方式;直接寻址方式;间接寻址方式。,3.1.1 立即寻址方式,指令中所需的常数作为指令的操作数直接给出。,立即寻址包括:短立即寻址和长立即寻址。,短立即寻址指令:有一个8、9、13位的常数作操作数。短立即寻址指令为一个单指令字,并将常数嵌在该指令中。长立即寻址指令:有一个16位的常数作操作数,所以要求两个指令字。16位常数作为第二条指令发送,常数可以是一个绝对常数也可以是一个二进制补码。,采用短立即寻址的RPT指令,RPT#49;将紧跟RPT指令后的那条指令执行50次。,指令寄存器中的内容:,采用立即寻址的RPT代码 8位常数49,立即操作数作为RPT指令字的一部分。,立即操作数以符号#为前缀。,长立即寻址的 ADD指令,ADD#65534,2;将数据65534左移两位后,再将结果加至累加器。,第一条指令字:,采用长立即寻址的ADD代码 Shift2,第二条指令字:,16位常数65534FFFEh,立即操作数包含在第二条指令字中,指令寄存器顺次接收两个指令字的16位值。,3.1.2 直接寻址方式,在直接寻址方式中,指令寄存器的内容为:,位15-8:用于指示指令类型(例如,ADD)和指令所访问的数据值的移位信息。位7:直接/间接指示符。0表示为直接寻址;1表示为间接寻址。位6-0:指示该指令所访问的数据存储器地址的偏移量。,1.用直接寻址方式产生数据地址,TI公司的TMS320系列芯片将64K的数据存储器分为512页,每页128字称为数据页。,当前数据页由状态寄存器ST0中的9位数据页指针(DP)值决定。,2.使用直接寻址方式,处理器用页指针DP来寻找数据页,用指令寄存器的低7位有效位来寻址该页上的特定地址。,(1)设置数据页:将数据页(0-511)装入DP。,DP可由LDP指令装载,也可由向ST0装载的任何指令来装载DP。LDP指令直接装载DP,并且不影响ST0的其它位。,例:LDP#32;设置当前数据页为32(1000h-107Fh),注意:在任何程序中都要初始化DP。因为上电后不定义DP;复位不初始化DP。,(2)指明偏移量:7位偏移量由指令的操作数提供。,例:如果希望ADD指令取当前数据页的第5个地址处的数据:ADD5H;将当前数据页中偏移量为5h处的数据加至累加器,说明采用直接寻址时,不必每条指令前都要设置数据页。总之,必须保证要访问新的数据页之前改变DP。,3.直接寻址示例,采用直接寻址的ADD指令(移位0至15位),LDP#4;数据页设为4(0200h-027Fh)ADD9H,5;将数据地址0209h处的内容左移5位后加至累加器,采用直接寻址的ADDC指令,LDP#500;数据页设为500(FA00h-FA7Fh)ADDC 8H;数据地址FA08h处内容和进位值(C)被加至累加器,3.1.3 间接寻址方式,8个辅助寄存器(AR0-AR7)为处理器提供间接寻址的16位地址,可以访问64K数据存储器空间的任意单元。,间接寻址操作码格式:指令寄存器的内容,位15-8:指示指令类型(例如,ADD)和指令所访问的数据值的移位信息位7:直接/间接指示符。0表示为直接寻址;1表示为间接寻址。位6-4:辅助寄存器更新代码ARU,决定当前辅助寄存器是否以及如何进行增或减。位3:下一个辅助寄存器指示符N,说明指令是否改变ARP值。N=0,ARP内容保持不变;N=1,下一个辅助寄存器NAR的内容装入ARP。位2-0:下一个辅助寄存器的值,包括下一个辅助寄存器的值。若N=1,则NAR被装入ARP。,2.当前辅助寄存器,通过状态寄存器ST0中的3位辅助寄存器指针(ARP)来指定8个辅助寄存器(AR0AR7)的某一个作为当前辅助寄存器(AR)。,在执行指令的过程中,当前AR的内容作为被访问数据存储器的地址。,ARP可由MAR指令、LST指令或任何支持间接寻址的指令来装载。,3.间接寻址选项,TMS320C24X提供4种间接寻址选项:不增不减;增1或减1;增加或减去索引量;增加或减去索引量且反向进位。,4.修改辅助寄存器内容,用于修改辅助寄存器(AR)内容的特定指令有:LAR、ADRK、SBRK和MAR。LAR指令装载AR;ADRK和SUBRK分别用来从AR中加上或减去一个立即数;MAR指令可使AR值增加/减少1或增加/减少一个索引量。,另外任何支持间接寻址操作数的指令都可修改辅助寄存器。,5.辅助寄存器,除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器AR。当本条指令执行完之后,下一个辅助寄存器AR便成为当前辅助寄存器AR。,例:选择新的当前辅助寄存器ARMAR*,AR1;将当前辅助寄存器AR设为AR1LACL*+,AR2;用辅助寄存器AR1所指向的地址中内容装载累加器的低16位,AR1内容加1,使AR2为当前辅助寄存器ARSACL*+;将累加器的低16位存于AR2所指向的地址单元,AR2内容加1。,3.2 指令集,根据指令的功能划分为:,累加器、算数和逻辑指令表;辅助寄存器和数据页指针指令表;TREG、PREG和乘法指令表;转移指令表;控制指令表;I/O和存储器指令表。,指令表符号的意义,ACC累加器。AR当前辅助寄存器。ARX 用于LAR和SAR指令的3位数据值,指定操作的辅助寄存器。BITX4位数值,用于指定数据存储器中的哪一位将被BIT指令所测试。,CM2位数值,CMPR指令执行CM值所声明的比较:若CM=00,测试:(当前AR)=(AR0)?;若CM=01,测试:(当前AR)(AR0)?;若CM=11,测试:(当前AR)(AR0)?。Shift4位移位值。TP用于条件执行指令的2位数值,代表如下4种条件:若BIO引脚为低,则TP=00;若TC位=1,则TP=01;若TC位=0,则TP=10;若无条件,则TP=11。,说明,表中指令按字母顺序排列;表中给出了执行每条指令所需要的周期数;所有指令都假设从内部程序存储器和内部数 据存储器中执行;指令的周期数适用于单指令执行,不适用于重复方式。,3.3 典型指令说明,申明直接寻址时一律认为DP指针已经指向要寻址的数据区,就不用再重新装载DP;而间接寻址时则认为ARP已经指到当前辅助寄存器AR,而也不用再单独声明当前AR的值。,ADD指令,对累加器的加操作指令ADD:将数据存储器单元的数或立即数左移后加至累加器。结果存在累加器中。,移位时,低位填0,高位在SXM1时为符号扩展,在SXM0时填0。,寻址短立即数时,加操作不受SXM的影响,且不能重复执行。,ADD 5,2;(DP=4:20027Fh)将数据存储器单元0205h的内容左移2位之后与ACC相加,结果存在ACCADD*+,2,AR0;(ARP=4,AR4=282)将数据存储器单元282的内容左移2位之后加至ACC,结果存在ACC,指令执行后AR4=283,ARP0ADD#2;短立即数2与ACC相加,结果存在ACCADD#1111h,2;长立即数1111h左移2位后与ACC相加,结果存在ACC,2.AND指令,和累加器逻辑“与”操作指令AND:实现被寻址单元的内容和累加器的逻辑“与”操作,以及长立即数经过移位之后和连接器进行逻辑“与”操作。逻辑“与”操作之后的结果保存在累加器中。,AND 16;(DP4:20027Fh)将数据存储器单元0210h的内容与ACC的内容进行逻辑“与”操作,结果保留在ACC中。AND*;(ARP=0,AR0=301h)将数据存储器单元0301h的内容与ACC的内容进行逻辑“与”操作,结果保留在ACC中。AND#00FFh,4;将立即数0FFh左移4位之后和ACC逻辑“与”,结果保留在ACC中。,3.BANZ指令,辅助寄存器不等于零转移指令BANZ:若当前辅助寄存器内容不为零,则控制转移至指定的程序存储器地址,否则控制转移到下一条指令。当前AR的缺省修改为减1。该指令可用来实现程序的循环执行。,MAR*,AR0;ARP指向AR0。LARAR1,#3;AR1中装入3。LARAR0,#60h;AR0中装入60h。P1 ADD*+,AR1;将AR0所指的数加到ACC,并将AR0的值增1,ARP指向AR1。BANZP1,AR0;若AR10则循环。,BCND指令,条件转移指令BCND:当所规定的条件符合时,控制转移到指定的程序存储器地址。,BCNDP1,LEQ;若ACC的内容小于等于零时,程序转到P1处开始执行。,5.BIT指令,位测试指令BIT:将数据存储器中的指定位的值复制到状态寄存器ST1的TC位。,将该指令和BCND指令结合可判断指定位的状态,并根据该位的状态来控制程序的转移。,BIT0h,15;(DP=6)测试300h处的最低有效位。BCNDP1,TC;若该位为1,则程序转到P1处执行。,BLDD指令,数据存储器至数据存储器间的块传送BLDD:把指定的数据存储器源地址中的字拷贝到指定的数据存储单元目的地址中。,源地址和目的地址可由长立即数地址或数据存储器地址指定。,注意:如果源地址为长立即数,则目的地址只能为直接或间接;如果源地址为直接或间接,则目的地址只能为长立即数。,说明,该指令不能用于存储器映射的寄存器。使用RPT指令重复BLDD操作期间中断被禁止。当BLDD指令重复使用时,由长立即数指定的源(目的)地址保存在PC中,每次重复过程中PC增1,从而可以访问一串源(目的)地址。若使用间接寻址方式来指定目的(源)地址,则在每次重复过程中,可以访问一个新目的(源)地址。若使用直接寻址方式,所指定的源(目的)地址是个常数,在重复过程中不会被修改。,BLDD#300h,20h;(DP=6:300h37Fh)将数据存储器单元300h的内容复制到数据存储器320h。BLDD*+,#321h,AR3;执行前:ARP=2,(AR2)=301h,(301h)=01h,(321h)=0Fh执行后:ARP=3,(AR2)=302h,(301h)=01h,(321h)=01h,CLRC指令,清除控制位指令CLRC:指定的控制位清除为0。,指定的控制位为:C状态寄存器ST1的进位位CNF状态寄存器ST1的RAM配置控制位INTM状态寄存器ST0的中断方式位OVM状态寄存器ST0的溢出方式位SXM状态寄存器ST1的符号扩展方式位TC状态寄存器ST1的测试/控制标志位XF状态寄存器ST1的XF引脚状态位,CLRCTC;将ST1的TC位清零。,注:用LST指令也可装入ST0和ST1寄存器。,IN指令,从端口输入数据指令IN:从一个I/O单元读一个16位值到指定的数据存储器单元。,IN#7,1000h;(DP=6)从端口地址为1000h的外设读数据,并将数据存于数据存储器单元307h。IN*,5h;从端口地址为0005h的外设读数据,并将数据存至当前辅助寄存器所指定的数据存储器单元中。,LACC指令,装载累加器指令LACC:将指定的数据存储器单元的内容或一个16位常量左移后送入累加器。,移位时,低位填0,高位在SXM1时为符号扩展,在SXM0时填0。,LACC5,4;(DP=8:40047fh)将数据存储器单元0405h的内容左移4位之后送到ACC。LACC*,4;(ARP=2,AR2=305h)将数据存储器单元0305h的内容左移4位之后送到ACC。LACC#1234h,2;将长立即数1234h左移2位之后送到ACC。,LACL指令,装载累加器低位并清零累加器高位指令LACL:将被寻址数据存储器单元的内容或者被零扩展的8位常量装入累加器的低16位,累加器的高半部分填零。,注意数据被作为无符号的16位数来处理,而非二进制补码。无论SXM为何状态,该指令的操作数抑制符号扩展。,LACL#10h;将10h装载入ACC。LACL1;(DP6:300h37Fh)将数据存储器单元301h的内容装载入ACCLACL*-,AR4;(ARP=0,AR0=301h,(301h)2)将数据存储器单元301h的内容装载入ACC,指令执行完后AR0=0300h,ARP=4。,MAR指令和LAR指令,修改辅助寄存器指令MAR:修改辅助寄存器ARP的值,该指令在直接寻址方式下相当于NOP指令。装载辅助寄存器指令LAR:将数据存储器的值装载入辅助寄存器。,LAR和SAR指令可在子程序调用或中断处理时装载和存储辅助寄存器,从而实现在中断或子程序调用时上下文的保存。,MAR*,AR1;指定当前辅助寄存器为AR1。MAR*,AR5;将当前辅助寄存器(AR1)增1,并向ARP装入5。LARAR1,5H;(DP=4:0200h027fh)将数据存储器地址0205h的内容装入AR1寄存器。LARAR1,#50H;将短立即数0050h装入AR1寄存器。LARAR1,#1234H;将长立即数1234h装入AR1寄存器。,LDP指令,装载数据页指针指令LDP:将被寻址数据存储器单元的9位最低有效位或9位立即数转入状态寄存器ST0的数据页指针DP。,LDP5;(DP=5:地址0280h02FFh)。,DP也可由LST指令装入。,LST指令,装载状态寄存器指令LST:将被寻址数据存储器单元中的值装入指定的状态寄存器(ST0或ST1)。,MAR*,AR0LST#0,*,AR1;将辅助寄存器AR0所寻址的数据存储器单元内容送入状态寄存器ST0,但不包括INTM位。尽管指定了下一个ARP值,但该值被忽略,ARP不送入ARB。LST#1,0h;(DP=6:300h37Fh)将数据存储器单元300h的内容装入ST1。,LST指令用于子程序调用和中断后恢复状态寄存器。,注意,(1)LST#0 操作向ARP装入新值,但并不影响ST1寄存器中的ARB字段。(2)LST#1 操作中,送入ARB的值也被送入ARP。(3)若在间接寻址方式下用一个操作数来指定下一个AR值,则该操作数将被忽略,与之替代的是将被寻址数据存储器单元所含的3位最高有效位送入ARP。(4)状态寄存器中的保留位读出总为1。写这些位不起作用。,LTD指令,装载TREG寄存器指令LTD:将数据寄存单元的内容加载到TREG。,按PM状态位指定的方式对乘积寄存器的内容进行移位,并把移位后的值与ACC相加,结果放在ACC中。指定的数据存储单元的内容拷贝到地址加1的数据存储单元。,LTD123;(DP=5:028002FFh,PM=0:乘积不移位)执行前:(2FBh)=0022h,(2FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h。执行后:(2FBh)=0022h,(2FCh)=0022h,(TREG)=0022h,(PREG)=000Fh,(ACC)=14h。LTD*,AR3;(PM0)执行前:ARP=1,(AR1)=02FBh,(2FBh)=0022h,(2FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h。执行后:ARP=3,(AR1)=02FBh,(2FBh)=0022h,(2FCh)=0022h,(TREG)=0022h,(PREG)=000Fh,(ACC)=0014h。,注意,数据传送功能可通过连续存储块的边界;该指令移动数据的功能不能用于外部数据寄存器或存储器映射的寄存器;若LTD被用于外部数据存储器,则功能与LTA相同。,15.MACD指令,乘且累加并带数据移动指令MACD:可以完成以下功能:(1)按PM状态位指定的方式把先前的乘积移位,再与ACC的内容相加;(2)把指定的数据存储单元的内容加载到TREG;(3)将存放在TREG寄存器中的数据存储单元值乘以指定的程序存储器地址中的内容;(4)将指定的数据存储器地址中的内容复制到下一个数据存储器。,MACD0FF00h,08h;(DP=6:0300h037Fh;PM=0;CNF=1:B0配置为程序存储器)执行前:数据存储器(308h)=23h,(309h)=18h,程序存储器(FF00h)=4h,(TREG)=45H,(PREG)458972h,(ACC)=723EC41h。执行后:数据存储器(308h)=23h,(309h)=23h,程序存储器(FF00h)=4h,(TREG)=23H,(PREG)8Ch,(ACC)=76975B3h。,说明,当重复MAC指令时,每重复一次包含在PC中的程序存储器地址加1。若使用间接寻址指定数据存储器地址则每次重复时就可以访问新的数据存储器地址;若使用直接寻址方式指定的数据存储器地址是常数,重复时不会对其进行修改。若MACD寻址存储器映象寄存器或外部存储器作为数据存储器单元,则MACD功能与MAC相同,数据移动不会发生。,MPY指令,乘指令MPY:T寄存器内容和被寻址数据存储器单元的内容相乘,其结果转入P寄存器中。,若使用短立即数寻址,则T寄存器和带符号的13位常数相乘;无论SXM为何值,短立即数总是靠右对齐并在相乘之前进行符号扩展。,MPY 5;(DP=4:0200h027Fh)将数据存储器单元205h的内容和TREG寄存器中的内容相乘,结果保存在PREG中。MPY*,AR2;(ARP=1,AR1=40Dh)将数据存储器单元40Dh的内容和TREG寄存器中的内容相乘,结果保留在PREG中,指令执行完后ARP=2MPY 031h;立即数0031h和TREG寄存器中的内容相乘,结果保存在PREG中。,RPT指令,重复执行下一条指令RPT:紧接RPT后的那条指令被执行n次,n为RPTC初值加1。若使用直接或间接寻址,则被寻址的数据存储器单元中的值送入重复计数器(RPTC);若使用短立即数寻址,则8位立即数送入RPTC。,RPT#20;执行NOP指令21次。NOP,说明,在上下文切换时不能保存RPTC的值,所以重复循环被认为是多周期指令,它不能被中断。器件复位时,RPTC被清零。,SACH指令,移位并存储累加器高位指令SACH:将整个累加器复制到输出移位寄存器中,然后全部32位数左移0 7位,再将移位后数值的高16位复制到数据存储器。,在移位时,低位填零,高位丢失,累加器内容不变。,SACH10,1;(DP4:0200h027Fh)将ACC的左移1位,高16位存至数据存储器单元020Ah中。SACH*+,AR2;(ARP=1)将ACC的高16位存至AR1指向的数据存储器单元,操作完成之后ARP=2。,SACL指令,移位并存储累加器低位指令SACL:将整个累加器复制到输出移位寄存器中,然后全部32位数左移0 7位,再将移位后数值的低16位复制到数据存储器。,在移位时,低位填零,高位丢失,累加器内容不变。,SACL10,1;(DP4:0200h027Fh)将ACC的左移1位,低16位存至数据存储器单元020Ah中。SACH*+,AR2;(ARP=1)将ACC的高16位存至AR1指向的数据存储器单元,操作完成之后ARP=2。,SAR指令,存储辅助寄存器指令SAR:将指定的辅助寄存器(ARx)内容存入被寻址数据存储器单元。,注意在间接寻址方式中,SAR指令同时也要对当前辅助寄存器内容进行修改时,SAR将在增、减辅助寄存器内容前将辅助寄存器值存至数据存储器。,SAR AR0,30h;(DP=6:0300h037Fh)将AR0的值存至数据存储器单元0330h中。SAR AR0,*+;将AR0的值存入其指向的数据存储器单元,同时AR0的值增1。执行前:ARP=0,AR00400h,(0400h)0000h执行后:ARP=0,AR00401h,(0400h)0400h,SBRK指令,从当前辅助寄存器中减去立即数指令SBRK:从指定的辅助寄存器中减去8位立即数值,其结果替换原有的辅助寄存器中的内容。,减法在辅助寄存器算术单元(ARAU)中进行,立即数值作为8位正数处理。,所有辅助寄存器的算术运算都是无符号的。,SBRK#20h;指令执行前:ARP=5,AR5=0050h,;指令执行后:ARP=5,AR5=0030h。,SETC指令,设置控制位指令SETC:设置指定的控制位为1。,LST指令也可用于装载ST0和ST1寄存器。,指定的控制位:C状态寄存器ST1的进位位CNF状态寄存器ST1的RAM配置控制位INTM状态寄存器ST0的中断方式位OVM状态寄存器ST0的溢出方式位SXM状态寄存器ST1的符号扩展方式位TC状态寄存器ST1的测试/控制标志位XF状态寄存器ST1的XF引脚状态位,SETCTC;将ST1的TC位置1。,SPLK指令,存储长立即数至数据存储器指令SPLK:将1个16位值写入任何一个数据存储器单元。,在直接寻址方式下使用该指令对数据存储器单元赋值时,通常需要将数据页指针DP指向该数据存储器单元所在的数据页。,SPLK#30h,5;(DP=4)将数据0030h存至数据存储器单元0205h处。SPLK#1122h,*+,AR4;执行前:ARP=0,AR00400h,(0400h)0000h,执行后:ARP=4,AR00401h,(0400h)1122h,SST指令,存储状态寄存器指令SST:将指定的状态寄存器ST0和ST1存入数据存储器。,在直接寻址方式下,不管ST0中的数据页指针(DP)为何值,指定的状态寄存器总是被存入第0页。,SST#0,60h;自动访问数据页0,将ST0的值存入数据存储器单元0060h中。,说明,处理器将自动访问第0页,且DP指针不会被修改;第0页内的特定存储单元在指令中给出;在间接寻址方式中,存储地址从被选的辅助寄存器获取。,TBLR指令,表读指令TBLR:将程序存储单元中的一个字传送到指令指定的数据存储单元。,说明程序存储单元中的地址由ACC的低16位指定。指令先从程序存储单元读出,然后写入指定的数据存储单元。当与重复指令(RPT)一起使用时,TBLR成为单周期指令。用ACC(15:0)装载后的程序计数器每个周期增1。,TBLR6h;(DP=4)执行前:(ACC)=0023h,程序存储器(0023h)=0306h,数据存储器(0206h)=0075h。执行后:(ACC)=0023h,程序存储器(0023h)=0306h,数据存储器(0206h)=0306h.。TBLR*,AR7;执行前:ARP=0,(AR0)=0300h,(ACC)=0024h,程序存储器(0024h)=0307h,数据存储器(0300h)=0075h。执行后:ARP=7,(AR0)=0300h,(ACC)=0024h,程序存储器(0024h)=0307h,数据存储器(0300h)=0307h。,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开