TI中文支持网
TI专业的中文技术问题搜集分享网站

32位数除以16位数,2407汇编如何高效移植至28027?

原来在2407里有一段定点乘除计算,翻译成C语言是这样的:

w=((dp3_MotorPole<<10)*(sint32)dp3_MAngleFake)/10000 ;

在2407用汇编语言是如下实现的:

非常高效清晰:清晰是指_dp3_MotorPole(这里等于4)左移10位后成为d‘4096,装入16位的T寄存器,再乘以_dp3_MAngleFake后变成一个32位数,装入ACC,然后用16次SUBC指令完成除法。

用汇编写这样的加减乘除很好操控。

可是,我在CCS6中对28027用C写这段程序,查看其生成的ASM文件,是如下这样:

它call了除法子程序。

我想问:

1)这样call出来的除法效率怎么样?

2)对于28027有没有必要用汇编写这种乘除法?

3)如果有必要,如何将汇编嵌入C程序中?有没有例子可以参考?

先谢了!

赞(0)
未经允许不得转载:TI中文支持网 » 32位数除以16位数,2407汇编如何高效移植至28027?
分享到: 更多 (0)