_第二章 DSP汇编指令1xg.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.3 汇编语言指令 DSP指令的汇编句法格式为: 操作码 [ 操作数 ] ;[ 注释 ] 其中操作码为由可描述指令特征的助记符表示,它规定了指令的操作功能;在操作数中定义了该句法表达式中所用的变量以及寻址方式;注释是为便于阅读而对指令作的说明。 例如,加法指令的句法有: ADD dma[,shift];直接寻址 ADD dma,16;左移16位直接寻址 ADD ind[,shift[,ARn]];间接寻址 ADD ind,16[,ARn];左移16位间接寻址 ADD # k;短立即寻址 ADD # lk[,shift];长立即寻址 以上指令中,ADD表示作加法操作。后面的操作数可以是常数,也可以是引用存储器、I/O端口、寄存器地址、指针、移位次数和其他各种常数的汇编表达式。 2.1 数据传送指令 1、数据存储器至数据存储器间的块传送: BLDD # lk,dma;源地址为长立即数,直接寻址 BLDD # lk,ind[,ARn];源地址为长立即数,间接寻址 BLDD dma, # lk;目标地址为长立即数,直接寻址 BLDD ind,# lk [,ARn];目标地址为长立即数,间接寻址 该指令将数据存储器中的一块源数据字连续地复制到指定的目的数据存储单元中。 例2.1 BLDD #300h,20h;(DP=6)(地址为0300h~037Fh) 例2.2 BLDD *+,#321h,AR3; 2、程序存储器至数据存储器间的块传送: BLPD # pma,dma;源地址为长立即数,直接寻址 BLPD #pma,ind[,ARn];源地址为长立即数,间接寻址 该指令将程序存储器中的一块数据字连续地复制到指定的目的数据存储单元中,指令中的长立即数#pma是源首地址(不是数据!!),块的长度在重复计数RPTC中。 该指令不影响任何状态位。 例2.3 BLPD #800h,00h;(DP=6)(地址为0300h~037Fh) 例2.4 BLPD #800h,*,AR7; 3、片内数据存储器中的数据传送 DMOV dma;直接寻址 DMOV ind[,ARn];间接寻址 该指令把指定的数据存储器内容复制到该地址加1的地址中,原单元内容保持不变,即数据存储器地址→数据存储器地址+1。 DMOV指令只用于片内数据RAM块。不能用于外部存储器。 DMOV功能也可由LTD和MACD来实现。 该指令受CNF状态位影响。 例2.5 DMOV DAT8;(DP=6) 例2.6 DMOV *,AR1; 4、从端口输入数据 IN dma,PA;直接寻址 IN ind,PA[,ARn];间接寻址 PA:16位I/O端口或I/O影射的寄存器地址。 IN指令从I/O单元读入16位值到指定的数据存储单元,引脚IS非变为低电平,表示访问I/O口,STRB、W/R非和READY时许与读外部数据存储器一样。 该指令不受任何状态位影响。 例2.7 IN 7,1000h; 从口地址为1000h的外设读数据,并将数据存至数据存储器单元307h(DP=6) IN *,5h; 从口地址为5h的外设读取数据,并将数据存于当前辅助寄存器所指定的数据存储器单元。 5、左移后装入累加器: LACC dma[,shift];直接寻址 LACC dma,16;直接寻址并左移16位 LACC ind[,shift[,ARn]]间接寻址 LACC ind,16[,ARn];间接寻址并左移16位 LACC # lk,[shift];长立即寻址 第一条到第四条指令将指定的数据存储器地址的内容左移(shift位或16位)后送入累加器。 第五条指令中的#lk是一个16位长的数据,不是地址。该条指令将数据左移后送入累加器。 在移位时,低位填0;高位受状态为SXM的影响;若SXM=1,则进行符号扩展;若SXM=0,则不进行符号扩展,填0即可。 例2.9 LACC 6,4;(DP=8:地址0400h~047Fh,SXM=0) 例2.10 LACC *,4;(SXM=0) 6、装载累加器低位并清累加器高位: LACL dma;直接寻址 LACL ind[,ARn];间接寻址 LACL # k;短立即寻址 第一条和第二条指令被寻址数据存储器单元的内容装入累加器的低16位,累加器的高位填0。第三条指令将8位短立即数#k扩展为16位(高位补0)并装入累加器的低16位,累加器的高位填0。 无论SXM为何状态,该指令都不进行符号扩展。 例2.11 LACL 1;(DP=6) LACL *—,AR4; 7、按TREG规定的左移后装入累加器低位: LACT dma;直接寻址 LACT ind[,ARn];间接寻址 该指令将数据存储单元中的值左移后装入累加器。左移位数由寄存器TREG最低4位决定,可左移

文档评论(0)

word.ppt文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档