新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


programing:c-language:64bit-multiply-instruction


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
programing:c-language:64bit-multiply-instruction [2019/10/25 20:48] – ↷ 移動操作に合わせてリンクを書き換えました。 240b:253:240:a00:d812:37cb:1f85:165eprograming:c-language:64bit-multiply-instruction [2026/07/28 13:16] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
-32bit×32bit→64bit演算の注意 +====== 32bit×32bit→64bit演算の注意 ======
-==========================+
 [[devtool:ide:ewarm:start|IAR社のEWARM]]では、64bit変数(long long)がサポートされているので、32bit変数同士のかけ算で64bit結果を得る時の留意点についての備忘録。(他のコンパイラでは未確認) [[devtool:ide:ewarm:start|IAR社のEWARM]]では、64bit変数(long long)がサポートされているので、32bit変数同士のかけ算で64bit結果を得る時の留意点についての備忘録。(他のコンパイラでは未確認)
  
-ソース例1でアセンブラ出力を確認 +===== ソース例1でアセンブラ出力を確認 =====
------------------------------+
 下記記述では、「`MULS`」命令で32bit演算命令が使われてしまっている。 下記記述では、「`MULS`」命令で32bit演算命令が使われてしまっている。
  
行 28: 行 26:
  
  
-ソース例2でアセンブラ出力を確認 +===== ソース例2でアセンブラ出力を確認 =====
------------------------------+
 下記記述では、「`SMULL`」命令で期待通り64bit演算命令が使われた。 下記記述では、「`SMULL`」命令で期待通り64bit演算命令が使われた。
  
programing/c-language/64bit-multiply-instruction.1572004083.txt.gz · 最終更新: by 240b:253:240:a00:d812:37cb:1f85:165e