Lecture10-第7章-1-C55x汇编语言的DSP软件开发教学课件PPT.ppt

上传人:春哥&#****71; 文档编号:25332484 上传时间:2022-07-11 格式:PPT 页数:65 大小:1.74MB
返回 下载 相关 举报
Lecture10-第7章-1-C55x汇编语言的DSP软件开发教学课件PPT.ppt_第1页
第1页 / 共65页
Lecture10-第7章-1-C55x汇编语言的DSP软件开发教学课件PPT.ppt_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《Lecture10-第7章-1-C55x汇编语言的DSP软件开发教学课件PPT.ppt》由会员分享,可在线阅读,更多相关《Lecture10-第7章-1-C55x汇编语言的DSP软件开发教学课件PPT.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、完整版教学课件完整版教学课件Lecture10-第7章-1-C55x汇编语言的DSP软件开发DSP芯片原理与应用第11讲 C55x汇编语言的DSP芯片软件开发(一)汇编指令目 录CONTENTS1 引言1 C55x汇编语言2 C55x汇编指令系统3 C55x寻址方式1、C55x汇编语言 机器语言 利用机器码来表达程序执行功能的语言 汇编语言 利用助记符指令、代数指令来表达程序执行功能的语言 高级语言 利用自然语言的表达习惯,来表达程序执行功能的语言编程语言1、C55x汇编语言 助记符指令: 利用几个英文字母来表示一条DSP指令,如用ADD来表示加法运算指令, 便于记忆和书写。 代数指令: 利用

2、代数运算符号来表示指令,如利用“+”来表示加法指令 指令较为直观。汇编语言助记符指令集代数指令集1、C55x汇编语言基本组成:源语句汇编语言指令、汇编伪指令、宏伪指令和注释一般一句程序占据编辑器的一行。每行源语句的长度可以是源文件编辑器格式允许的长度,但语句的执行部分的字符长度必须小于200。标号域、指令域、操作数域和注释域标号:指令操作数列表 ; 注释注: 内的部分是可选项。语句必须以标号、空格、星号或分号开始;长度规范:汇编语句格式:1、C55x汇编语言基本组成:源语句汇编语言指令、汇编伪指令、宏伪指令和注释一般一句程序占据编辑器的一行。每行源语句的长度可以是源文件编辑器格式允许的长度,但

3、语句的执行部分的字符长度必须小于200。标号域、指令域、操作数域和注释域标号:指令操作数列表 ; 注释注: 内的部分是可选项。标号为可选项。若要使用标号,则必须从第1列开始。标号长度最多为32个字符,由AZ,az,09,_和$等组成,第1个字符不能为数字。标号后可以跟一个冒号(:),但并不作为标号的一部分;长度规范:汇编语句格式:1、C55x汇编语言基本组成:源语句汇编语言指令、汇编伪指令、宏伪指令和注释一般一句程序占据编辑器的一行。每行源语句的长度可以是源文件编辑器格式允许的长度,但语句的执行部分的字符长度必须小于200。标号域、指令域、操作数域和注释域标号:指令操作数列表 ; 注释注: 内

4、的部分是可选项。每个域必须由1个或多个空格分开,制表符等效于空格;注释是可选项,开始于第1列的注释须用星号或分号(*或;)标示,但在其他列开始的注释前面只能标分号;长度规范:汇编语句格式:1、C55x汇编语言基本组成:源语句汇编语言指令、汇编伪指令、宏伪指令和注释一般一句程序占据编辑器的一行。每行源语句的长度可以是源文件编辑器格式允许的长度,但语句的执行部分的字符长度必须小于200。标号域、指令域、操作数域和注释域标号:指令操作数列表 ; 注释注: 内的部分是可选项。指令域一定不能从第1列开始,否则将被视为标号。指令域包括以下操作码之一:助记符指令、汇编伪指令(如.data,.set)、宏伪指

5、令(如.var,.macro)和宏调用;长度规范:汇编语句格式:1、C55x汇编语言基本组成:源语句汇编语言指令、汇编伪指令、宏伪指令和注释一般一句程序占据编辑器的一行。每行源语句的长度可以是源文件编辑器格式允许的长度,但语句的执行部分的字符长度必须小于200。标号域、指令域、操作数域和注释域标号:指令操作数列表 ; 注释注: 内的部分是可选项。操作数域为操作数的列表。操作数可以是常数、符号或者是表达式。当操作数为立即寻扯时,使用符号作为前缀;操作数为间接寻址时,使用*符号作为前缀,将操作数的内容作为地址。长度规范:汇编语句格式:1、C55x汇编语言* 第1步:分配块* .def x,y,in

6、itx .usect vars,4 ; 为变量x保留4个未初始化的16位内存空间y .usect vars,1 ; 为变量y保留4个未初始化的16位内存空间.sect table ; 创建一个名为“table”的初始化数据块init .int 1,2,3,4 ; 定义一个数组init,包含4个整形数.text ; 创建一个代码块(默认是.text).def start ; 定义代码的起始标号(起始地址)start ; 标号*第2步:初始化处理器模式* BCLR C54CM ; 设置处理器为C55x本地模式BCLR AR0LC ; 设置寄存器AR0处于线性寻址状态BCLR AR6LC ; 设置寄

7、存器AR0处于线性寻址状态汇编语句示例助记符指令标号汇编伪指令操作数注释1、C55x汇编语言*第3步a:复制初始化数据到x中* copy; 标号AMOV #x, XAR0; 寄存器XAR0指向xAMOV #init, XAR6 ; 寄存器XAR6指向初始化数据initMOV *AR6+, *AR0+ ; 将第1个数据从init0复制到x0MOV *AR6+, *AR0+; 将第2个数据从init1复制到x1MOV *AR6+, *AR0+; 将第3个数据从init2复制到x2MOV *AR6, *AR0; 将第4个数据从init3复制到x3汇编语句示例*表示间接寻址标号汇编伪指令立即数1、C5

8、5x汇编语言寄存器的名称:AR1,Arn,XAR2累加器:ACC,BCC比特位的名称:C54CM,AR0LC汇编语言程序中常出现的符号:PC program-counterprogram-counter,16bits16bits寄存器,保存待执行指令的地址寄存器,保存待执行指令的地址XPC 扩展扩展PCPC寄存器,程序区扩展超过寄存器,程序区扩展超过64K64K时,保存高位地址时,保存高位地址SP stack pointer,stack pointer,堆栈指针寄存器堆栈指针寄存器常用寄存器名1、C55x汇编语言寄存器的名称:AR1,Arn,XAR2累加器:ACC,BCC比特位的名称:C54C

9、M,AR0LC汇编语言程序中常出现的符号:1、C55x汇编语言寄存器的名称:AR1,Arn,XAR2累加器:ACC,BCC比特位的名称:C54CM,AR0LC汇编语言程序中常出现的符号: 64K Word 1、C55x汇编语言寄存器的名称:AR1,Arn,XAR2累加器:ACC,BCC比特位的名称:C54CM,AR0LC汇编语言程序中常出现的符号:支持COFF格式的伪指令支持DWARF(Debuging With Attributed Record Formats)调试格式的伪指令汇编语言程序中的伪指令:以”.”开始初始化伪指令内存对齐伪指令符号定义伪指令条件控制伪指令宏定义伪指令1、C55x

10、汇编语言汇编语言程序中的伪指令COFF调试格式 .func和.endfunc指明C函数的开始和终止; .block和.endblock指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪一行; .sym指明全局变量、局部变量或函数的符号调试信息,name放入符号表的变量名,前32字符有效;.sym name, value , type, storage class, size, tag, dims1、C55x汇编语言汇编语言程序中的伪指令COFF调试格式 .func和.endfunc指明C函数的开始和终止; .block和.end

11、block指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪一行; .sym指明全局变量、局部变量或函数的符号调试信息value指定变量的值,可用合法的表达式表示.sym name, value , type, storage class, size, tag, dims1、C55x汇编语言汇编语言程序中的伪指令COFF调试格式 .func和.endfunc指明C函数的开始和终止; .block和.endblock指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪

12、一行; .sym指明全局变量、局部变量或函数的符号调试信息type指定变量的C语言类型.sym name, value , type, storage class, size, tag, dims1、C55x汇编语言汇编语言程序中的伪指令COFF调试格式 .func和.endfunc指明C函数的开始和终止; .block和.endblock指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪一行; .sym指明全局变量、局部变量或函数的符号调试信息storage class指定变量的C存储类型,如结构、枚举、联合、外部定义、外部变

13、量、静态变量等;.sym name, value , type, storage class, size, tag, dims1、C55x汇编语言汇编语言程序中的伪指令COFF调试格式 .func和.endfunc指明C函数的开始和终止; .block和.endblock指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪一行; .sym指明全局变量、局部变量或函数的符号调试信息size指明该变量的比特位数;.sym name, value , type, storage class, size, tag, dims1、C55x汇

14、编语言汇编语言程序中的伪指令COFF调试格式 .func和.endfunc指明C函数的开始和终止; .block和.endblock指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪一行; .sym指明全局变量、局部变量或函数的符号调试信息tag指明这个变量所属类型或结构的名称,这个名称必须已经由.stag、.etag或.utag 声明过;.sym name, value , type, storage class, size, tag, dims1、C55x汇编语言汇编语言程序中的伪指令COFF调试格式 .func和.endf

15、unc指明C函数的开始和终止; .block和.endblock指明C块的边界; .file用来定义符号表中的一个符号,确定当前的源文件名; .line用于指明当前属于C源程序中哪一行; .sym指明全局变量、局部变量或函数的符号调试信息dims由1到4个由逗号分隔的表达式组成,分别表明该变量的维数。.sym name, value , type, storage class, size, tag, dims1、C55x汇编语言汇编语言程序中的伪指令COFF调试格式.stag、.etag和.utag分别定义结构、枚举和联合等的符号调试信息.member用于详指其中的一个成员;.eos与.sta

16、g、.etag和.utag配合,表示该数据结构类型的终止点。.utag name , sizemember definitions.eos.etag name , sizemember definitions.eos.stag name , sizemember definitions.eos1、C55x汇编语言助记符及助记符及语法语法描描述述初始化初始化常数常数.space size in bits在当前块中保留指定数量的位;汇编器在这些保留的位填在当前块中保留指定数量的位;汇编器在这些保留的位填0;也可以;也可以通过用通过用16乘以需保留的字数来保留字;当前面有标号时,其指向保留乘以需保留

17、的字数来保留字;当前面有标号时,其指向保留位的第一个字或字节位的第一个字或字节地址地址对齐对齐.align size使使SPC(sectionprogramcounter)指向)指向1到到128个字的边界;个字的边界;Size的值的值必须为必须为2的整数幂,默认时相当于的整数幂,默认时相当于128.align1 ;SPC指向字的边界;指向字的边界;.align2 ;SPC指向双字(偶数地址)的边界;指向双字(偶数地址)的边界;.align128;SPC指向页的边界指向页的边界符号符号定义定义.struct开始结构体定义开始结构体定义条件条件控制控制.if well-d e f i n e d

18、expression如果条件成立,汇编该块代码如果条件成立,汇编该块代码宏定义宏定义.macro定义宏;可在程序任意部分定义,但在使用宏前必须已定义定义宏;可在程序任意部分定义,但在使用宏前必须已定义汇编语言程序中的伪指令(举例)目 录CONTENTS1 引言1 C55x汇编语言2 C55x汇编指令系统3 C55x寻址方式2、C55x汇编指令系统指令分类2、C55x汇编指令系统指令指令作用作用指令指令作用作用ABDST绝对距离LMS最小均方ABS绝对值MAC乘累加ADD加法MACMZ带延迟的乘累加ADDSUBCC带条件加减、搬移ACCu的内容MAS乘累减ADDSUB2CC带条件加减同时移位MA

19、X比较累加器、辅助寄存器或临时寄存器内容的最大值ADDV带绝对值加MAXDIFF比较选择累加器内容的最大值EXP计算累加器指数MIN比较累加器、辅助寄存器或临时寄存器内容的最小值FIRSADD对称FIR滤波MINDIFF比较选择累加器内容的最小值FIRSSUB反对称FIR滤波MPY乘法算术指令列表2、C55x汇编指令系统指令作用NEG对累加器、辅助寄存器或临时寄存器的内容取相反数ROUND对累加器内容四舍五入SAT对累加器内容饱和运算SQA平方累加SQDST平方距离SQR平方SQS平方差SUB减法SUBC条件减算术指令列表Cont.2、C55x汇编指令系统加法指令语法并行使能 大小 周期 流水

20、线1:ADD src, dst Yes2 1 X2:ADD k4, dst Yes 2 1 X3:ADD K16, src, dstNo 4 1 X4:ADD Smem, src, dst No 3 1 X5:ADD ACx Tx, ACy Yes 2 1 X6:ADD ACx #SHIFTW, ACy Yes 3 1 X7:ADD K16 #16, ACx, ACy No 4 1 X8:ADD K16 #SHFT, ACx, ACy No 4 1 X9:ADD Smem Tx, ACx, ACy No 3 1 X10:ADD Smem #16, ACx, ACy No 3 1 X11:ADD

21、 uns(Smem), CARRY, ACx, ACy No 3 1 X12:ADD uns(Smem), ACx, ACy No 3 1 X13:ADD uns(Smem) #SHIFTW, ACx, ACy No 4 1 X14:ADD dbl(Lmem), ACx, ACy No 3 1 X15:ADD Xmem, Ymem, ACx No 3 1 X16:ADD K16, Smem No 41 X根据操作数的类型,具体分为16种情况2、C55x汇编指令系统指令指令作用作用BAND利用立即数与内存按位与,并与0比较BCLR设置比特为0BCNT对累加器比特计数BFXPA/TR扩展累加器比特

22、域BNOT计算累加器、辅助寄存器和临时寄存器比特补码BSET设置比特为1BTST/CLR/NOT/SET测试比特是否为1(同时清零、置位)BTSTP测试寄存器对逻辑和移位指令列表指令作用作用指令作用作用AND位与ROL圆周左移OR 位或ROR圆周右移XOR位异或SFTCC条件移位CMP 将内存与立即数比较SFTL逻辑移位CMPAND 带与的寄存器比较SFTS带符号移位CMPOR 带或的寄存器比较逻辑和移位指令列表Cont.2、C55x汇编指令系统2、C55x汇编指令系统逻辑与指令语法并行使能 大小 周期 流水线1:AND src, dst Yes 2 1 X2:AND k8, src, dst

23、 Yes 3 1 X3:AND k16, src, dst No 4 1 X4:AND Smem, src, dst No 3 1 X5:AND ACx #SHIFTW, ACy Yes 3 1 X6:AND k16 #16, ACx, ACy No 4 1 X7:AND k16 #SHFT, ACx, ACy No 4 1 X8:AND k16, Smem No 41 X根据操作数的类型,具体分为8种情况2、C55x汇编指令系统利用DSP芯片的McBSP接口来与外部的RS-232接口实现UART通信,需要在软件中针对McBSP外设模块来设计UART通信的驱动程序,指令作用指令作用B(CC)无

24、条件跳转(有条件)RESET软件复位CALL(CC)无条件调用(有条件)RET(CC)无条件返回(有条件)IDLE空闲RETI中断返回INTR/TRAP软中断、陷阱RPT(ADD/SUB/CC)单指令无条件重复NOP空操作RPTB块指令无条件重复POP(BOTH)弹栈XCC有条件执行PSH(BOTH)压栈控制指令列表2、C55x汇编指令系统无条件跳转条件跳转跳转指令BAC0 ;跳转到寄存器AC0存储的地址处继续运行 执行前执行前执行后执行后AC000 0000 403D AC000 0000 403D PC00 1F0APC00 403D2、C55x汇编指令系统指令作用AADD利用加法修改寄存

25、器(辅助寄存器、临时寄存器、SP)的内容AMAR修改辅助寄存器的内容AMOV向扩展辅助寄存器加载立即数ASUB利用减法修改寄存器(辅助寄存器、临时寄存器)的内容DELAY内存延迟MOV从内存中或者利用立即数实现向累加器、辅助寄存器、内存等的数据搬移NOT对累加器、辅助寄存器或临时寄存器内容取逻辑非S交换累加器或累加器对中的内容数据存取指令列表2、C55x汇编指令系统搬移指令语法 并行使能 大小 周期 流水线1:MOV rnd(Smem Tx), ACx No 31 X2:MOV low_byte(Smem) #SHIFTW, ACx No 3 1 X3:MOV high_byte(Smem)

26、#SHIFTW, ACx No 3 1 X4:MOV Smem #16, ACx No 2 1 X5:MOV uns(Smem), ACx No 31 X6:MOV uns(Smem) #SHIFTW, ACx No 4 1 X7:MOV40 dbl(Lmem), ACx No 3 1 X8:MOV Xmem, Ymem, ACx No 3 1 X根据操作数的类型,具体分为8种情况并行指令列表指令指令说明说明指令指令说明说明ADD:MOV带并行搬移的加法MAC:MAC并行乘累加AMAR:MAC修改寄存器值,并行乘累加MAC:MPY并行的乘累加和乘AMAR:MAS修改寄存器值,并行乘累减MAS:

27、MAC并行的乘累加和乘累减AMAR:MPY修改寄存器值,并行乘法MAS:MAS并行的乘累减MACM:MOV乘累加,并行搬移MAS:MPY并行的乘累减和乘MASM:MOV乘累减,并行搬移MPY:MAC并行的乘和乘累加MPYM:MOV乘法,并行搬移MPY:MPY并行的乘MOV:MOV并行搬移数据MANT:NEXP并行计算累加器中的尾数和指数SUB:MOV带并行搬移的减法2、C55x汇编指令系统双16位数操作指令列表指令指令作用作用ADD双16位数加ADDSUBT双16位加减SUB双16位数减SUBADD双16位数减加2、C55x汇编指令系统目 录CONTENTS1 引言1 C55x汇编语言2 C5

28、5x汇编指令系统3 C55x寻址方式3、C55x寻址方式汇编指令针对不同的操作数,支持不同的确定操作数地址的方法,即寻址方式。绝对寻址方式直接寻址方式间接寻址方式3、C55x寻址方式3、C55x寻址方式绝对寻址u k16绝对寻址方式u k23绝对寻址方式u I/O绝对寻址方式性质性质说明说明形式*abs16(#k16),其中k16是一个16位的无符号常数地址形成7位的寄存器DPH(扩展数据页指针XDP的高位部分)和k16拼接成一个23位的地址,用于对数据空间的访问访问区域用来访问存储单元和存储映射寄存器。3、C55x寻址方式绝对寻址u k16绝对寻址方式u k23绝对寻址方式u I/O绝对寻址

29、方式性质性质说明说明形式* (#k23),其中k23是一个23位的无符号常数地址形成直接将23位的无符号常数作为一个23位的地址,用于对数据空间的访问访问区域用来访问存储单元和存储映射寄存器3、C55x寻址方式绝对寻址u k16绝对寻址方式u k23绝对寻址方式u I/O绝对寻址方式性质性质说明说明形式port(#k16) 或者*port(#k16),其中k16是一个16位无符号常数地址形成直接将16位的无符号常数作为一个16位的地址,用于对数据空间的访问访问区域用来访问I/O存储单元。3、C55x寻址方式3、C55x寻址方式直接寻址u数据页指针(DP)寻址方式u堆栈指针(SP)寻址方式u寄存

30、器比特位(Register-Bit)寻址方式u外设数据页指针(PDP)寻址方式 指令包含数据存储地址低7位的数据。它与一个基本地址相结合,构成一个16比特的数据存储地址。根据基本地址的存储位置,可以分为3、C55x寻址方式直接寻址DPDP或或SPSP的选择由的选择由ST1ST1寄存器中的寄存器中的CPLCPL位决定位决定CPLCPL1 1:与:与SPSP组合成组合成1616位地址位地址CPL = 1: CPL = 1: CPLCPL0 0:与:与DPDP组合成组合成1616位地址位地址CPL = 0:CPL = 0:3、C55x寻址方式直接寻址u寄存器比特位(Register-Bit)寻址方式

31、 利用操作数bitoffset来确定寄存器中的某一位,用于位运算 如 bitoffset为0,则可以访问寄存器的最低位; 如 bitoffset为3,则可以访问寄存器的位3。 该方式只能出现在寄存器的测试、置位、清零、取反指令中,只能用来访问下列寄存器:累加器(AC03)、辅助寄存器(AR07)、临时寄存器(T03)。3、C55x寻址方式直接寻址u外设数据页指针(PDP)寻址方式 将9位的外设数据页指针PDP和7位的偏移量拼接成一个16位的地址,用于对数据空间的访问。7位偏移量包含在指令中。 通常用来访问I/O空间存储单元。3、C55x寻址方式3、C55x寻址方式间接寻址u辅助寄存器(AR)寻

32、址方式u双辅助寄存器(Dual AR)寻址方式u系数数据指针(CDP)寻址方式u系数间接寻址方式 用于寻址的地址存储在寄存器中,通过访问寄存器实现间接的地址操作。3、C55x寻址方式间接寻址uAR间接寻址方式将辅助寄存器ARn(AR07)作为指针来实现对数据的访问。ARn中存储了23位地址的低16位,高7为存放在ARnH(扩展辅助寄存器XARn的高位部分)中。该方式可以用来访问存储单元、存储映射寄存器、寄存器比特位、I/O空间。支持地址自增1、自减1等变化3、C55x寻址方式间接寻址uAR间接寻址方式*ARx:以辅助寄存器ARx中的值为地址进行寻址*ARx-:寻址后,辅助寄存器中的值减1*AR

33、x+:寻址后,辅助寄存器中的值加1*+ARx:辅助寄存器中的值加1,再以改变后的值作为地址进行寻址*ARx(#k16):辅助寄存器ARx中的值加k16后,作为地址进行寻址,辅助寄存器中的值不改变*+ARx(#k16):辅助寄存器ARx中的值加k16后,作为地址进行寻址,辅助寄存器中的值改变3、C55x寻址方式间接寻址uAR间接寻址方式*ARx(T0):辅助寄存器ARx中的值加T0后,作为地址进行寻址,辅助寄存器中的值不改变*(ARx-AR0):辅助寄存器ARx中的值减去AR0中的值后,作为地址进行寻址,辅助寄存器中的值不改变3、C55x寻址方式间接寻址u双AR间接寻址方式辅助寄存器ARn(AR

34、07)作为指针来实现对2个数据的同时访问。和AR间接寻址方式一样,XARn中包含23位地址。(1)执行1条指令来完成2个16位数据的访问。2个16位数据的操作数在汇编语法中为Xmem、Ymem。例如:ADD Xmem, Ymem, ACx(2)执行2条指令分别来完成2个16位数据的访问。每条指令中16位数据的操作数在汇编语法中为Smem或Lmem。例如:MOV Smem, dst| AND Smem, src, dst3、C55x寻址方式间接寻址uCDP间接寻址方式系数数据指针CDP作为指针来实现对数据的访问。用来访问存储单元、存储映射寄存器、寄存器比特位、I/O空间。访问存储单元或者存储映射

35、寄存器时,CDP中存储了23位地址的低16位,高7位存放在CDPH(扩展系数数据指针XCDP的高位部分)中。3、C55x寻址方式间接寻址u系数间接寻址方式地址产生过程与CDP的地址产生过程一样。支持存储器到存储器的数据搬移、存储器初始化和双乘加(Dual multiply accumulate)、双乘减(Dual multiply subtract)、FIR滤波(Finite impulse response filter)、乘法、乘累加(Multiply adn accumulate)、乘累减(Multiply and subtract)等算术指令。汇编指令中如果需要同时访问3个操作数,其中

36、2个操作数(Xmem、Ymem)用双AR寻址方式,第3个操作数(Cmem)用系数间接寻址方式,第3个操作数要存放到另2个操作数所在存储块之外的存储块上3、C55x寻址方式间接寻址的特殊处理u循环寻址在卷积、自相关和FIR滤波器等许多算法中,设置循环缓冲区实现滑动窗窗内如果有新的数据到来,它将覆盖最早的数据。循环缓冲区的参数主要包括:长度(存放在寄存器BKxx)有效基地址(存放在寄存器BSAxx)3、C55x寻址方式间接寻址的特殊处理u循环寻址BKxx定义了循环缓冲区的大小R。要求缓冲区地址始于低N位为零的地址,且R值满足2NR循环缓冲区长度为31个字,必须开始于最低5位为零的地址(即XXXX

37、XXXX XXX0 0000b),且BKxx=31。循环缓冲区长度为32个字,必须开始于最低6位为零的地址(即XXXX XXXX XX00 0000b),BKxx=32。3、C55x寻址方式间接寻址的特殊处理u循环寻址BKxx定义了循环缓冲区的大小R。要求缓冲区地址始于低N位为零的地址,且R值满足2NR 有效基地址(EFB)定义了缓冲区的起始地址,也就是辅助寄存器(ARn)低N位设为0后的值。循环缓冲区的尾地址(EOB)定义为缓冲区的底部地址,它通过用BK的低N位代替ARx的低N位得到。3、C55x寻址方式间接寻址的特殊处理u循环寻址If 0 index + stepBK;index = in

38、dex + step;Else if index + stepBK;index = index + step BK;Else if index + step 0;index = index + step + BK;在循环寻址区内,按步长更新地址,越界时自动调整后到寻址区内3、C55x寻址方式间接寻址的特殊处理u位反转寻址主要用于FFT算法中,可以显著提高程序的执行速度和存储区的利用效率利用辅助寄存器(AR07)存放数组的基指针,利用临时寄存器0(T0)作为索引指针,指向存放数据的单元。位反转寻址将T0加到辅助寄存器中,地址以位反转方式产生 1 0 1 0 + 1 1 0 0 0 0 0 1 3、C55x寻址方式原顺序位模式位反转模式位反转后的顺序原顺序位模式位反转模式位反转后的顺序00000000008100000011100011000891001100192001001004101010010153001111001211101111011340100001021211000011350101101010131101101111601100110614111001117701111110141511111111154位反转寻址运算示例间接寻址的特殊处理u位反转寻址 谢谢谢谢

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁