我正在尝试将 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;
编译器会将除法操作编译为对执行软件 64 位除法算法的库子例程的调用。您可能还必须告诉编译器与数学库链接,我没有专门使用 RVDS 的经验。
为什么不尝试自己编译代码,看看会发生什么?尝试反汇编生成的机器代码,看看它是如何工作的:它应该非常有教育意义。