资源描述:
《DSP技术与应用线性汇编语言简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DSP技术与应用——线性汇编语言简介线性汇编语言简介汇编代码结构线性汇编语言简介汇编代码结构Label:parallelbars[condition]instructionunitoperands;comments(1)Label标号标号用来定义一行代码或一个变量,它代表一条指令或数据的存储地址,标号后面的冒号是可选的。a标号的第1个字符必须是字母或下划线”_”跟一个字母;b标号的第1个字符必须在文件的第1列;c标号最多可包含32个字母字符;d并行指令不能使用标号。(2)Parallelbars并行
2、符号
3、
4、汇编代码结构Label:parallelbars[condition]instructionunitoperands;comments(3)[condition]条件A如果指令没有指出条件,指令总被执行;B如果给定条件,当条件为真,指令执行;C如果给定条件,当条件为假,指令不执行。如[A1]A1!=0A1=0[!A1]A1=0A1!=0汇编代码结构Label:parallelbars[condition]instructionunitoperands;comments4instruction
5、指令汇编代码指令包括伪指令和命令助记符A伪指令用来在汇编语言中控制汇编过程或定义数据结构。所有伪指令都以圆点打头。如:.sect“name”.doublevalue.floatvalue.bytevalueB命令助记符代表有效微处理器命令,它执行程序操作。汇编代码结构Label:parallelbars[condition]instructionunitoperands;commentsUint功能单元C6000有8个功能单元,每个功能单元有两种类型。功能单元以“.”开始,后面跟一个功能单元分类符。
6、.S1.S2.L1.L2.M1.M2.D1.D2另有交叉通道如.L1X汇编代码结构Label:parallelbars[condition]instructionunitoperands;comments6operands操作数操作数由常数、符号以及常数与符号构成的表达式组成。操作数之间必须用逗号隔开。7comments注释;注释可以再任何一列开始*注释必须在第一列开始线性汇编语言简介线性汇编语句的基本结构线性汇编中的伪指令线性汇编资源安排C代码转换为线性汇编线性汇编语句的基本结构基本格式与汇编语言
7、相同,必须是ASCII码文件,扩展名必须是”.sa”,用作汇编优化器的输入文件Label[[:]][
8、
9、][[register]]mnemonic[unitspecifier][operandlist][;commend]线性汇编中的伪指令1、调用一个函数.call[ret_reg=]func_name(arg1,arg2)(仅在过程procedure)内有效2、定义一个可被汇编优化器优化,而且可被C/C++当做函数调用的线性汇编代码段的伪指令。label.cproc[vari1[,vari2,…]
10、]起始.endproc结束3、定义一个可被汇编优化器优化的线性汇编代码段的伪指令。label.proc[vari1[,vari2,…]]起始.endproc结束线性汇编中的伪指令4、表明存储器地址相关与不相关的伪指令.mdep[symbol1],[symbol2]1,2相关.no_mdep其后定义的函数段内存储器地址不相关5、定义变量,或者说描述存入寄存器的数值变量的伪指令:.regvariable1[,variable2,…]6、过程的返回值.return[argument]7、指出循环迭代次数的
11、伪指令label.tripminimumvalue线性汇编资源安排读取指令(LDH)必须使用.D单元乘法指令(MPY)必须使用.M单元加法指令(ADD)必须使用.L单元减法指令(SUB)必须使用.S单元跳转指令(B)必须使用.S单元C代码转换为线性汇编shortDP(short*m,short*n,shortcount){shorti;shortproduct;shortsum=0;for(i=0;i12、(sum);}C代码转换为线性汇编第一步:定义函数名称、实现参数传递shortDP(short*m,short*n,shortcount).def_DP_DP.cproccptr0,cptr1,vptr1).def为definition的缩写2).cproc表示本函数是C可调用函数,其后为所传递的参数C代码转换为线性汇编第二步:暂时存放临时数据的寄存器定名,由.reg(register)完成.regaddr_a,addr_x.regm,n.regproduct,sum