CCS 中 C 语言程序调用线性汇编
在对 进行优化的时候,难免会用到线性汇编,今天找了一上午关于在 中调用线性
汇编的程序,发现网上资料很少,
这里自己做一个记录。
线性汇编类似于标准的汇编代码,不同的是,线性汇编代码中不需要给出标准汇编代码
必须指出的所有信息,线性汇编代码
会对这些信息进行选择,或者由汇编优化器确定,从而使得代码的编写较为容易。线性汇
编代码不需要给出如下的信息。
使用的寄存器,由优化器分配。
指令是否并行运行由优化器决定。
指令使用的功能单元,由优化器选择。
流水执行,由优化器确定。
如果代码中没有指定这些信息,汇编优化器会根据代码的情况确定这些信息。与其它
的代码产生工具一样,有时需要对
线性汇编代码进行修改直到性能满意为止。在修改的过程中,可能要对线性汇编添加更加
详细的信息,如指出应该使用哪个功能单元。
线性汇编文件必须包含一些汇编优化器提供有关代码的其他信息。汇编优化器伪指令如
下:
线性汇编文件的扩展名必须是。
线性汇编代码应该包括和“”命令。“”和命令限定优化
器优化代码段,“”放在这段代码
的开始位置,“”放在这段代码的结尾。用这种方式可以设置需要优化的汇编代码段,
如程序或函数等。
线性汇编代码中可能包含“”指令,该命令允许使用将要存入寄存器的数值的描述字。
当使用“”命令时,汇编优化器为
数值选择一个寄存器,这个寄存器与对该值进行操作的指令所选择的功能单元一致。
线性汇编代码中可能包含命令,该命令指出循环的迭代次数。
下面是一个简单的例子,用线性汇编实现两个数的相加。
的代码
!"#
""$%
&
"'$'%
" %
'$%
( ')* %
+%
评论15