0

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;
4

1 に答える 1

1

コンパイラは、ソフトウェア 64 ビット除算アルゴリズムを実行するライブラリ サブルーチンへの呼び出しとして除算演算をコンパイルします。コンパイラに数学ライブラリとリンクするように指示する必要があるかもしれませんが、特に RVDS の経験はありません。

自分でコードをコンパイルして、何が起こるか見てみませんか? 得られたマシンコードを逆アセンブルして、それがどのように機能するかを確認してください。非常に教育的です。

于 2012-12-06T17:56:15.833 に答える