16ビットマシンは64ビットデータ型で操作を実行できますか?
2つのレジスタを使用して32ビットの乗算を実行できることは知っていますが、64ビットのデータをどのように処理できるかわかりませんか?
16ビットマシンは64ビットデータ型で操作を実行できますか?
2つのレジスタを使用して32ビットの乗算を実行できることは知っていますが、64ビットのデータをどのように処理できるかわかりませんか?
レジスタ/マシンコードレベルでは、算術キャリー(またはボロー)が発生したことを示すキャリーフラグが常にあります。これは、任意の数のマシンワードに対して算術演算を実行するために使用できます。RAMは中間ストレージに使用される可能性があるため、必ずしも追加のレジスタは必要ありません。
マシンワードに関連するデータ型が広いほど、特定の操作を実行するためにより多くの命令が必要になります。レジスタではなくRAMを使用する必要があるため、パフォーマンスが低下する可能性もあります。そのため、レジスタセットが小さいか直交しないアーキテクチャでは、このような操作の実行速度がさらに遅くなり、より多くの命令が必要になる場合があります。
高水準言語は、そのような操作を直接サポートする場合があります。C言語のデータ型long long
は通常64ビットですが、コンパイラがそれをサポートしているかどうか、およびその実装でのサイズを確認する必要があります。コンパイラーがC99stdint.hヘッダーを提供し、それにint64_t
データ型(およびそのバリアント)が含まれている場合、コンパイラーは暗黙的に64ビット操作のコードを生成できます。もちろん、コードサイズ、メモリ使用量、実行時間は増加します。
ほとんどのC実装ではdouble
、FPUのないターゲットでも、データ型は64ビットです。
「ハンドル」とはどういう意味ですか?
チューリング完全なマシンならどれでも何でも処理できるので、理論的にはあなたの質問に対する答えはイエスです。しかし、問題はそれがどれほど便利で実用的かということです。
16ビットマシンが64ビット操作をハードウェアでサポートしている可能性は低いようです。
double
) 。