整数除法与RVDS下的Cortex-M0(Integer division with Cortex-

2019-10-30 04:12发布

我想一个64位的整数类型划分为32个比特之一,我使用RVDS 4.1作为工具链。

的Cortex-M0没有硬件除数,所以我可以做下面的操作? 如果是这样如何?

unsigned long int b = 2590202;
unsigned long long int a = 953502716552001ULL;
unsigned long long int result;
result = a/b;

Answer 1:

编译器将编译除法运算来执行软件的64位除法库子程序调用。 您可能还告诉编译器与数学库的链接,我有专门RVDS没有经验。

为什么不尝试自己编译的代码,看看会发生什么? 尝试拆卸造成的机器代码,看看它是如何工作的:它应该是很有教育意义。



文章来源: Integer division with Cortex-M0 under RVDS