for(i=0;i<32;i++)
{
funcyion(arg1,arg2,arg3);
}
其中 funcyion(arg1,arg2,arg3)是用C6678DSP的汇编指令编写的汇编程序,该程序将单核内的A0~A31和B0~B31寄存器都用上了;
问题是:
for循环只执行一次,第一次执行后,i=5367859200的一个很大的数,而不是i=1,有人说A组和B组的寄存器不能都用,请大家帮分析一下,谢谢
Shine:
c里面调用汇编需要遵循一定规则的,您可以结合compiler user guide检查一下您的汇编代码。
7.5.1 Using Assembly Language Modules With C/C++ Code
www.ti.com/…/spru187u.pdf
hongkun ma:
你都用上了,那么参数传递,你用哪个寄存器呢?
i 临时变量,编译器也许会放在寄存器里面
再说,也不可能把 64个寄存器都用上,系统还要用来做SP等等特殊用途呢。