新石器Wiki

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

ユーザ用ツール

サイト用ツール


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


差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programing:c-language:64bit-multiply-instruction [2019/03/19 09:55] – [32bit×32bit→64bit演算の注意] 管理者programing: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/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.1552956958.txt.gz · 最終更新: by 管理者