CCS中C语言程序调用线性汇编.docx

CCS中C语言程序调用线性汇编.docx

ID:62797708

大小:9.33 KB

页数:5页

时间:2021-05-28

CCS中C语言程序调用线性汇编.docx_第1页
CCS中C语言程序调用线性汇编.docx_第2页
CCS中C语言程序调用线性汇编.docx_第3页
CCS中C语言程序调用线性汇编.docx_第4页
CCS中C语言程序调用线性汇编.docx_第5页
资源描述:

《CCS中C语言程序调用线性汇编.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CCS中c语言程序调用线性汇编公司内部编号:(GOOD・TMMT・MMUT・UUPTY・UUYY・DTTI・CCS中c语言程序调用线性汇编在对DSP进行优化的时候,难免会用到线性汇编,今天找了一上午关于在C中调用线性汇编的程序,发现网上资料很少,这里自己做一个记录。线性汇编类似于标准的汇编代码,不同的是,线性汇编代码中不需要给出标准汇编代码必须指出的所有信息,线性汇编代码会对这些信息进行选择,或者由汇编优化器确定,从而使得代码的编写较为容易。线性汇编代码不需要给出如下的信息。(1)使用的寄存器,由优化

2、器分配。(2)指令是否并行运行,由优化器决定。(3)指令使用的功能单元,由优化器选择。(4)流水执行,由优化器确定。(5)如果代码中没有指定这些信息,汇编优化器会根据代码的情况确定这些信息。与其它的代码产生工具一样,有时需要对线性汇编代码进行修改直到性能满意为止。在修改的过程中,可能要对线性汇编添加更加详细的信息,如指出应该使用哪个功能单元。线性汇编文件必须包含一些汇编优化器提供有关代码的其他信息。汇编优化器伪指令如下:(1)线性汇编文件的扩展名必须是〃.sa〃。(1)线性汇编代码应该包括cproc"

3、和".endproc”命令。".cproc”和".endproc"命令限定优化器优化代码段,".cproc”放在这段代码的开始位置,“.endproc”放在这段代码的结尾。用这种方式可以设置需要优化的汇编代码段,如程序或函数等。(2)线性汇编代码中可能包含“.reg”指令,该命令允许使用将要存入寄存器的数值的描述字。当使用“.reg”命令时,汇编优化器为数值选择一个寄存器,这个寄存器与对该值进行操作的指令所选择的功能单元一致。(3)线性汇编代码中可能包含〃.trip〃命令,该命令指出循环的迭代次数。下

4、面是一个简单的例子,用线性汇编实现两个数的相加。main,c的代码:ftincludeintadd(shorta,shortb);intmain(){shorta=2,b=3;shortresuIt;result=add(a,b);printf("result二%d",result);return0;add.sa的代码:・global_add_add:・cproca,b・regcADDa,b,c・returnc・endproc需要注意的是在.global前而一定要有空格或tab,

5、否则编译时会报错(这个折磨了我很久。。。)。另记录CCS中C语言调用汇编代码的参数传递规则:第1,3,5,7,9个参数通过A4,A6,A8,A10,A12寄存器传递第2,4,6,8,10个参数通过B4,B6,B&BIO,B12寄存器传递第10个以后的参数保存在堆栈中返回值保存在A4寄存器返回地址保存在B3寄存器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。