《《DSP寻址方式》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《DSP寻址方式》PPT课件.ppt(41页珍藏版)》请在三一办公上搜索。
1、1,3.1 寻址方式 3.2 TMS320C54x的指令表示方法 3.3 TMS320C54x的指令系统,第3章 TMS320C54x的指令系统,2,寻址指令中用到的缩写符号及其含义,3.1 寻址方式,3,1 立即寻址2 绝对寻址3 累加器寻址4 直接寻址5 间接寻址6 存储器映像寄存器寻址7 堆栈寻址,3.1 寻址方式,寻址方式分为数据寻址和程序寻址两种。,4,立即寻址,ADD#1234h,A;将立即数1234h加载到A,5,RPT#99;将下一条指令循环100次,ADD#0ffh,A;将0ffh加给A,立即寻址,6,特点:指令中含有一个固定的立即数,运行速度较快,但需占用程序存储空间,并且
2、数值不能改变。,用途:用于表示常数或对寄存器初始化,立即寻址,7,1 立即寻址2 绝对寻址3 累加器寻址4 直接寻址5 间接寻址6 存储器映象寄存器寻址7 堆栈寻址,3.1 寻址方式,8,绝对寻址,指令中含有所要寻找的操作数的16位存储单元地址。,MVKD TABLE,*AR1,特点:指令中包含一个固定的16位地址,能寻址任何一个数据存储单元中的操作数,但运行速度慢并要求较多的存储空间。,用途:用于对寻址速度无苛刻要求的地方,9,绝对地址寻址的指令至少应为2个字长。,绝对寻址有四种类型:数据存储器(dmad)寻址;程序存储器(pmad)寻址;端口(PA)寻址;*(1k)寻址。,绝对寻址,10,
3、1.数据存储器寻址,用于确定操作数存于数据存储单元的地址。,MVKD EXAM1,*AR5,语法:使用一个标号或一个数字来指定数据空间的一个地址。,数据存储器的16位地址dmad值,绝对寻址,11,2.程序存储器寻址,用于确定程序存储器中的一个地址。,MVPD TABLE,*AR2,语法:使用一个符号或具体的数字来指定程序空间的一个地址。,程序存储器的16位地址pmad值,绝对寻址,12,3.端口(PA)寻址,用一个符号或数字来确定外部I/O端口的地址。,PORTR FIFO,*AR5,I/O端口地址PA,绝对寻址,13,4.*(lk)寻址,使用一个指定数据空间的地址来确定数据存储器中的一个地
4、址。,LD*(PN),A,语法:允许所有使用单数据存储器(Smem)寻址的指令去访问数据空间的任意单元,而不改变DP的值,也不用对AR进行初始化。,注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。,绝对寻址,14,1 立即寻址2 绝对寻址3 累加器寻址4 直接寻址5 间接寻址6 存储器映像寄存器寻址7 堆栈寻址,3.1 寻址方式,15,将累加器的内容作为地址去访问程序存储单元,READA Smem,WRITA Smem,用途:用于完成程序存储空间与数据存储空间之间的数据传输。,累加器寻址,16,3.1 寻址方式,1 立即寻址2 绝对寻址3 累加器寻址4 直接寻址5 间接寻
5、址6 存储器映像寄存器寻址7 堆栈寻址,17,直接寻址,利用数据指针DP和堆栈指针SP寻址。,指令格式,特点:指令中只含有数据存储器的低7位地址(偏移地址dmad);,16位数据存储器地址由基地址(数据页指针DP或堆栈指针SP)和偏移地址(dmad)共同构成。,18,基地址:,数据页指针DP(9位)堆栈指针SP。,当CPL=0时,数据存储器16位地址由DP和偏移地址dmad拼接构成;,当CPL=1时,数据存储器16位地址由SP加偏移地址dmad相加构成。,直接寻址,19,地址形成过程:,当CPL=0时,,高9位,低7位,16位数据存储器地址,直接寻址,20,当CPL=1时,,高9位,低7位,1
6、6位数据存储器地址,SP+dmad,直接寻址,地址形成过程:,21,直接寻址,22,LD#4,DP;指向页4(0200h-027Fh),ADD 9h,A;将数据页4中地址9h的 数据加给AccA,直接寻址标识:变量前加,如x;在偏移量前加,如5。,直接寻址,23,数据存储器存储数据如图所示,采用数据页指针DP直接寻址,完成x,y单元的两个数据求和。,RSBX CPL,LD#3,DP,LD x,A,ADD y,A,ADD y,A,LD#4,DP,直接寻址,24,直接寻址特点:数据存储器的16位地址是由DP或SP 与指令中包含的数据存储器低7位地址dmad拼接或相加构成;可单周期寻址128个单元;
7、,用途:寻址速度快,用于速度关键的场合。,注意:上述两种直接寻址方式是相互排斥的;采用DP寻址时,要注意数据所在的页面指针,直接寻址,25,3.1 寻址方式,1 立即寻址2 绝对寻址3 累加器寻址4 直接寻址5 间接寻址6 存储器映像寄存器寻址7 堆栈寻址,26,间接寻址,27,按辅助寄存器内地址更新方式分类,按寻址的辅助寄存器数目来分类,线性寻址,循环寻址,位倒序寻址,双操作数寻址,单操作数寻址,间接寻址,28,1.单操作数寻址,指令格式:,间接寻址,29,注1:寻址16位字时增/减量为1,32位字时增/减量为2。注2:这种方式只能用写操作指令。注3:这种方式不允许对存储器映像寄存器寻址。,
8、间接寻址,30,注1:寻址16位字时增/减量为1,32位字时增/减量为2。,间接寻址,31,注3:这种方式不允许对存储器映像寄存器寻址。,间接寻址,32,按辅助寄存器内地址更新方式分类,按寻址的辅助寄存器数目来分类,线性寻址,循环寻址,位倒序寻址,双操作数寻址,单操作数寻址,间接寻址,33,双操作数寻址,指令格式:,间接寻址,34,2.双操作数寻址,间接寻址,35,2.双操作数寻址,指令格式:,间接寻址,36,2.双操作数寻址,间接寻址,37,按辅助寄存器内地址更新方式分类,按寻址的辅助寄存器数目来分类,线性寻址,循环寻址,位倒序寻址,单操作数寻址,双操作数寻址,间接寻址,38,间接寻址,39,位倒序寻址,实现方法:设AR2=0000B,作为基地址,指向X(0)的存储单元。设AR0=1000B,取FFT长度的一半。,程序:RPT#15;重复执行下条指令16次 PORTW*AR2+0B,PA;采用位倒序的间接寻址 向PA口输出数据,间接寻址,40,正向进位与逆向进位,1 0 0 1 0 0+1 0 0+1 0 0 1 0 0 0 0 1 0,间接寻址,位倒序寻址,41,按辅助寄存器内地址更新方式分类,按寻址的辅助寄存器数目来分类,线性寻址,循环寻址,位倒序寻址,单操作数寻址,双操作数寻址,间接寻址,