TMS320C55X dsp原理及应用 汪春梅新的第3章.ppt
《TMS320C55X dsp原理及应用 汪春梅新的第3章.ppt》由会员分享,可在线阅读,更多相关《TMS320C55X dsp原理及应用 汪春梅新的第3章.ppt(134页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 TMS320C55x的指令的指令系统系统 n n3.1 寻址方式 n n3.2 TMS320C55x的指令系统 3.1 寻址方式寻址方式 n n寻址方式:寻址方式:是指如何指定指令和操作数所在存储空间是指如何指定指令和操作数所在存储空间 的地址。的地址。n nC55x DSPC55x DSP支持三种寻址模式支持三种寻址模式 :n n绝对寻址模式绝对寻址模式:指令里有一个地址的全部或者部分指令里有一个地址的全部或者部分,指示目的地址指示目的地址;n n直接寻址模式直接寻址模式:使用偏移地址指示目的地址使用偏移地址指示目的地址;n n间接寻址模式间接寻址模式:使用指针指示目的地址。使
2、用指针指示目的地址。支持寻址模式操作数的指令应具有下表所示的句法元素:支持寻址模式操作数的指令应具有下表所示的句法元素:句法元素句法元素描述描述SmemSmem指令语句里含有指令语句里含有SmemSmem时,该指令可以访问数据存储器、时,该指令可以访问数据存储器、I/OI/O空间或者空间或者MMRMMR中的一个单字(中的一个单字(16bits)16bits)。写该指令语句。写该指令语句时,用一个兼容的寻址模式操作数来代替时,用一个兼容的寻址模式操作数来代替SmemSmem。LmemLmem指令语句里含有指令语句里含有LmemLmem时,该指令可以访问数据存储器或时,该指令可以访问数据存储器或者
3、者MMRMMR中的一个长字(中的一个长字(32bits)32bits)。写该指令语句时,用一个。写该指令语句时,用一个兼容的寻址模式操作数来代替兼容的寻址模式操作数来代替SmemSmem。Xmem and Ymem Xmem and Ymem 指令语句里含有指令语句里含有Xmem and YmemXmem and Ymem时,该指令可以对数据存时,该指令可以对数据存储器同时作两次储器同时作两次16bits16bits的访问。写该指令语句时,用兼容的访问。写该指令语句时,用兼容的寻址模式操作数来代替的寻址模式操作数来代替Xmem and Ymem Xmem and Ymem。CmemCmem指令
4、语句里含有指令语句里含有CmemCmem时,该指令可以访问数据存储器的时,该指令可以访问数据存储器的单字(单字(16bits)16bits)。写该指令语句时,用一个兼容的寻址模式。写该指令语句时,用一个兼容的寻址模式操作数来代替操作数来代替CmemCmem。BaddrBaddr指令语句里含有指令语句里含有BaddrBaddr时,该指令可以访问累加器时,该指令可以访问累加器(AC0AC3)AC0AC3)、辅助寄存器(、辅助寄存器(AR0AR7)AR0AR7)或或T0T3T0T3中的一个中的一个bitbit或者两个或者两个bitbit。只有寄存器。只有寄存器bitbit测试测试/设置设置/清除清除
5、/取反指令取反指令支持支持BaddrBaddr。写任意一条此类指令语句时,用一个兼容的写任意一条此类指令语句时,用一个兼容的寻址模式操作数来代替寻址模式操作数来代替BaddrBaddr 。3.1.1 绝对寻址模式寻址模式寻址模式功能功能k16k16绝对寻址绝对寻址用用DPHDPH的的7-bit7-bit寄存器,和一个寄存器,和一个16-bit16-bit无无符号常数构成一个符号常数构成一个23-bit23-bit数据空间地址。数据空间地址。该模式可以访问存储器或者该模式可以访问存储器或者MMRMMR。k23k23绝对寻址绝对寻址指定一个指定一个23-bit23-bit无符号常数作为全地址。无符
6、号常数作为全地址。该模式可以访问存储器或者该模式可以访问存储器或者MMRMMR。I/OI/O绝对寻址绝对寻址指定一个指定一个16bit16bit无符号常数作为无符号常数作为I/OI/O地址地址,该模式可以访问该模式可以访问I/OI/O空间。空间。n nk16k16绝对寻址绝对寻址绝对寻址绝对寻址n n其操作数为其操作数为*abs16(#k16)*abs16(#k16),其中,其中,k16k16为为1616位无符号常数。位无符号常数。n n将将7 7位的寄存器位的寄存器DPHDPH和和k16k16级联形成一个级联形成一个2323位的地址,用位的地址,用于对数据空间的访问。该模式可以访问一个数据存
7、储器于对数据空间的访问。该模式可以访问一个数据存储器单元或者单元或者MMRMMR。k k1 16 6绝绝绝绝对对对对寻寻寻寻址址址址模模模模式式式式 n nk16k16绝对寻址绝对寻址绝对寻址绝对寻址n n其操作数为其操作数为*abs16(#k16)*abs16(#k16),其中,其中,k16k16为为1616位无符号常数。位无符号常数。n n将将7 7位的寄存器位的寄存器DPHDPH和和k16k16级联形成一个级联形成一个2323位的地址,用位的地址,用于对数据空间的访问。该模式可以访问一个数据存储器于对数据空间的访问。该模式可以访问一个数据存储器单元或者单元或者MMRMMR。指令实例:(1
8、)语法格式:MOV Smem,dst 指令语句:MOV *abs16(#2002h),T2指令实例:(2)语法格式:MOV K16,Smem 指令语句:MOV#248,*abs16(#2002h)n nk16k16绝对寻址绝对寻址绝对寻址绝对寻址程序执行的结果是:T2=。汇编语言k16绝对寻址程序阅读与分析:.def start .mmregs .text start:MOV#03H,DPH MOV#24,*abs16(#2002h)MOV *abs16(#2002h),T2here:b here操作数*abs16(#2002h)的寻址地址:。032002H0018Hn nk23k23绝对寻址
9、绝对寻址n n操作数为操作数为 *(#k23)*(#k23),其中,其中,k23k23为为2323位的无符号常数,作为所位的无符号常数,作为所寻址数据空间的地址。寻址数据空间的地址。k23 k23绝对寻址模式绝对寻址模式绝对寻址模式绝对寻址模式 n nI/OI/O绝对寻址绝对寻址n n对于对于代数格式代数格式代数格式代数格式汇编语言指令,操作数是汇编语言指令,操作数是*port(#k16)*port(#k16),其中,其中 k16k16为为1616位无符号常数,用于指明位无符号常数,用于指明1616位位I/OI/O端口地址。端口地址。n n使用使用助记符格式助记符格式助记符格式助记符格式汇编语
10、言指令,其操作数是汇编语言指令,其操作数是port(#k16)port(#k16)(操(操作数前没有作数前没有*)。)。I/OI/O绝对寻址绝对寻址绝对寻址绝对寻址 3.1.2 3.1.2 直接寻址模式直接寻址模式 直接寻址直接寻址直接寻址直接寻址 的分类见下表的分类见下表 :寻址模式寻址模式描述描述DPDP直接寻址直接寻址使用使用DPHDPH指定的主数据页,和指定的主数据页,和DPDP相连接形成相连接形成2323位数据空间地址,用于访问存储器和位数据空间地址,用于访问存储器和MMRMMR。SPSP直接寻址直接寻址使用使用SPHSPH指定的主数据页,和指定的主数据页,和SPSP相连接形成相连接
11、形成2323位位地址,用于访问数据存储器里的堆栈值。地址,用于访问数据存储器里的堆栈值。寄存器寄存器bitbit直接直接寻址寻址用一个偏移来指定一个用一个偏移来指定一个bitbit地址。该模式用于访问地址。该模式用于访问一个寄存器一个寄存器bitbit或者两个相邻的寄存器或者两个相邻的寄存器bitbit。PDPPDP直接寻直接寻址址用用PDPPDP(外设数据页寄存器)和一个偏移,来指(外设数据页寄存器)和一个偏移,来指定一个定一个I/OI/O端口地址。该模式用来访问端口地址。该模式用来访问I/OI/O空间空间的单元。的单元。3.1.2 3.1.2 直接寻址模式直接寻址模式 直接寻址直接寻址直接
12、寻址直接寻址 中的中的DPDP直接寻址和直接寻址和SPSP寻址与状态寄存器寻址与状态寄存器ST1-ST1-5555的的CPLCPL位有关。位有关。当当CPL=0CPL=0采用采用DPDP直接寻址模式,操作数直接寻址模式,操作数DaddrDaddr当当CPL=1CPL=1采用采用SPSP直接寻址模式,操作数直接寻址模式,操作数*SP(offset)*SP(offset)直接寻址模式直接寻址模式中的寄存器寄存器bitbit直接寻址直接寻址和PDPPDP直接寻址直接寻址与状 态寄存器ST1-55的CPL位无关。3.1.2 3.1.2 直接寻址模式直接寻址模式 一、一、一、一、DP DP 直接寻址直接
13、寻址直接寻址直接寻址 DP DP直接寻址直接寻址直接寻址直接寻址的的2323位地址构成:位地址构成:n n高高7 7位由位由 DPH DPH 提供,用来确定主数据页;提供,用来确定主数据页;n n其余低其余低1616位为以下两部分的和:位为以下两部分的和:(1 1)DP DP 里的值。里的值。DPDP定义了在主数据页内的起始地址。定义了在主数据页内的起始地址。(2 2)汇编程序计算的汇编程序计算的7-bit7-bit偏移量(偏移量(DoffsetDoffset)。)。D DP P直直直直接接接接寻寻寻寻址址址址模模模模式式式式 n nDP DP 直接寻址直接寻址直接寻址直接寻址偏移量(偏移量(
14、DoffsetDoffset)的计算)的计算 访问对象访问对象计算计算DoffsetDoffset说明说明数据存储器数据存储器Doffset=Doffset=(Daddr-.dp)&7FhDaddr-.dp)&7FhDaddrDaddr是读是读/写操作的写操作的16bit16bit地址,地址,.dp.dp是利用汇编伪指令分配的数值(一是利用汇编伪指令分配的数值(一般般DPDP的匹配),的匹配),&表示按位表示按位“与与”MMRMMRDoffset=Doffset=Daddr&7FhDaddr&7FhDaddrDaddr是读是读/写操作的写操作的16bit16bit地址,地址,&表表示按位示按位
15、“与与”,mmap()mmap()迫使迫使CPUCPU把数把数据页视为据页视为0 0来操作。来操作。Doffset的计算有两种情况:表2-1 DP 直接寻址直接寻址Doffset的计算一、DP 直接寻址n nDP DP 直接寻址偏移量(直接寻址偏移量(直接寻址偏移量(直接寻址偏移量(DoffsetDoffset)的计算)的计算)的计算)的计算 DP 直接寻址直接寻址 Doffset 的计算代码示例:的计算代码示例:The assembler calculates Doffset:Doffset=(1)寻址数据存储器寻址数据存储器 At run time,the 23-bit data-spac
16、e address is generated:23-bit address=(Daddr .dp)&7Fh=(FFF4h FFF0h)&7Fh=04hDPH:(DP+Doffset)=03:(FFF0h+0004h)=03 FFF4hAMOV#03FFF0h,XDP.dp#0FFF0hMOV 0FFF4h,T2指令实例:指令实例:;Main data page is 03.For run-time,;DP is FFF0h.;For assembly time,.dp is FFF0h.;Load T2 with the value at local;address FFF4h.分析:分析:一
17、、DP 直接寻址n nDP DP 直接寻址偏移量(直接寻址偏移量(直接寻址偏移量(直接寻址偏移量(DoffsetDoffset)的计算)的计算)的计算)的计算 DP 直接寻址直接寻址 Doffset 的计算代码示例:的计算代码示例:汇编器计算偏移量:Doffset=(2)寻址寻址 MMRMMR(memory-mapped register memory-mapped register)程序运行时:(CPU:DPH=DP=0)23-bit 地址产生如下:23-bit address=Daddr&7Fh=0010h&7Fh=10hDPH:(DP+Doffset)=00:(0000h+0010h)=
18、00 0010hMOV mmap(AR0),T2 ;Load T2 with the value in AR0.;mmap()qualifier indicates access to MMR.;AR0 is mapped to address 000010h in data space指令实例:指令实例:分析:分析:一、DP 直接寻址 n n二、二、二、二、SPSP直接寻址直接寻址直接寻址直接寻址 SPSP直接寻址的直接寻址的直接寻址的直接寻址的2323位地址构成:位地址构成:位地址构成:位地址构成:n n最高最高7 7位地址由寄存器位地址由寄存器SPHSPH确定;确定;n n低低1616位
19、地址是位地址是SPSP值和指令里指定的值和指令里指定的7 7位偏移量之和。偏移量范围是位偏移量之和。偏移量范围是01270127。(由。(由SPHSPH和和SPSP构成了扩展数据堆栈指针构成了扩展数据堆栈指针XSPXSP)SPSP直接寻址模式直接寻址模式直接寻址模式直接寻址模式 n n二、二、二、二、SPSP直接寻址直接寻址直接寻址直接寻址 SPSP直接寻址的直接寻址的直接寻址的直接寻址的2323位地址构成:位地址构成:位地址构成:位地址构成:n n最高最高7 7位地址由寄存器位地址由寄存器SPHSPH确定;确定;n n低低1616位地址是位地址是SPSP值和指令里指定的值和指令里指定的7 7
20、位偏移量之和。偏位偏移量之和。偏移量范围是移量范围是01270127。指令实例:(1)语法格式:MOV Smem,dst 指令语句:MOV *SP(5),T2指令寻址分析:假设SPH=00h,SP=FF00h;操作数*SP(5),T2的寻址地址为:指令执行结果:将数据空间中地址为00 FF05h单元内的数值加 载到T2寄存器中。SPH:(SP+offset)=00 FF05h;n n三、寄存器位直接寻址三、寄存器位直接寻址三、寄存器位直接寻址三、寄存器位直接寻址模式模式n n操作数是操作数是bitoffset bitoffset n n只有寄存器的位测试、置位、清零、取反指令支持这只有寄存器的
21、位测试、置位、清零、取反指令支持这种寻址模式。种寻址模式。说明:(1)偏移量bitoffset 是从所要位寻址的寄存器最低位开始,如果bitoffset 是3,则正在寻址该寄存器的第 3 位。(2)该寻址方式只能访问以下的寄存器:AC0AC3、AR0AR7、T0T3。指令实例:(1)语法格式:BSET Baddr,src 指令语句:BSET 0,AC3 CPU 置位AC3的第零位。指令寻址分析:n n四、四、四、四、PDPPDP直接寻址直接寻址直接寻址直接寻址 使用PDP 寻址方式时,16bit 的I/O 空间地址的形成如下:64K 16bit 的I/O空间被分成512个外设数据页,每页有12
22、8个字,用9位的外设数据页指针寄存器PDP指出页地址,同时由指令中指定的一个7位偏移值来表示页内的偏移量,从而形成一个16bit 的外设I/O地址。n n四、四、四、四、PDPPDP直接寻址直接寻址直接寻址直接寻址 图 2-5 PDP 直接寻址模式n n四、四、四、四、PDPPDP直接寻址直接寻址直接寻址直接寻址 指令实例:用PDP直接寻址直接寻址模式访问I/O空间 语法:MOV Smem,dst 语句:MOV port(0),T2;指令寻址地址:PDP:Poffset 语法:MOV k9,PDP 语句:MOV#008,PDP;PDP=008h 初始化 PDP寄存器的语句:MOV port(0
23、),T2;PDP:Poffset=0400h 3.1.3 间接寻址模式间接寻址模式CPU支持的间接寻址模式见下表:寻址模式寻址模式功功 能能ARAR间接间接寻址寻址使用使用8 8个辅助寄存器(个辅助寄存器(AR0AR7)AR0AR7)中的一个指向数据。中的一个指向数据。CPUCPU用辅助寄存器来产生地址的方式取决于访问数据用辅助寄存器来产生地址的方式取决于访问数据空间、单个寄存器位或者空间、单个寄存器位或者I/OI/O空间。空间。双双ARAR间间接寻址接寻址地址产生过程与地址产生过程与ARAR间接寻址模式相同。间接寻址模式相同。该模式用在该模式用在访问两个或者多个数据存储器单元的指令中。访问两
24、个或者多个数据存储器单元的指令中。CDPCDP间接间接寻址寻址用系数数据指针(用系数数据指针(CDP)CDP)指向数据。指向数据。CPU CPU用用CDPCDP产生产生的地址的方式取决于访问数据空间、单个寄存器位或的地址的方式取决于访问数据空间、单个寄存器位或者者I/OI/O空间。空间。系数间接系数间接寻址寻址地址产生过程与地址产生过程与CDPCDP间接寻址模式相同。该模式所支间接寻址模式相同。该模式所支持的指令,可以在访问数据存储器里一个系数的同时,持的指令,可以在访问数据存储器里一个系数的同时,用双用双ARAR间接寻址访问另外两个数据存储器的值。间接寻址访问另外两个数据存储器的值。一、一、
25、一、一、ARAR间接寻址模式间接寻址模式间接寻址模式间接寻址模式 n n通过一个辅助寄存器通过一个辅助寄存器通过一个辅助寄存器通过一个辅助寄存器ARnARn(n=0,1,2,3,4,5,6,7n=0,1,2,3,4,5,6,7)访问数据。)访问数据。)访问数据。)访问数据。n nST2-55ST2-55的的的的ARMSARMS位决定位决定位决定位决定ARAR间接寻址的操作类型间接寻址的操作类型间接寻址的操作类型间接寻址的操作类型n nARMS=0ARMS=0,DSPDSP模式:模式:模式:模式:CPUCPU提供提供提供提供DSPDSP增强应用的高效执行功能;增强应用的高效执行功能;增强应用的高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TMS320C55X dsp原理及应用 汪春梅新的第3章 dsp 原理 应用 汪春梅新
限制150内