
初めまして、現在、組み込みマイコンの開発で、アルテラ社のNios2を使用して他の人がコーディングした日立SH2から置換え作業をしています。
いままではinline_asmを利用して、64Bit演算をしていました。
a*b=sig_h(上位32Bit)、sig_l(下位32Bit)
void mac( long *a, long *b, long *sig_h, long *sig_l )
{
STS.LMACL,@-SP
STS.LMACH,@-SP
LDS.L@R7+,MACL
LDS.L@R6+,MACH
MAC.L@R4+,@R5+
STS.LMACH,@-R6
STS.LMACL,@-R7
LDS.L@SP+,MACH
LDS.L@SP+,MACL
}
この64Bit演算をC言語だけで求める方法はあるのでしょうか?
Nios2のマニュアルがすべて英語なので同じようなことが出来るかどうか調べている最中です。
いい案があればアドバイスの程お願いします。
No.1ベストアンサー
- 回答日時:
日本アルテラ - Nios II 統合開発環境
http://www.altera.co.jp/products/software/produc …を見ると、コンパイラはGCCを使っているようですから、
64bit整数型として long long intが使える可能性が高いと思われます。
実際使えるかどうかは、マニュアルで確認してください。
使えるなら、longをlong longにキャストしてから計算すれば、64bitの演算結果が得られます。
参考URL:http://www.altera.co.jp/products/software/produc …
マニュアルを確認すると、
long long intはなく、
long long 8Byte 2s complementがありましたので
早速以下のように実験してみました。
long a;
long b;
long long c;
a = 0x7fffffff;
b = 0x7fffffff;
c = (long long)a * (long long)b;
とすると
cは3FFFFFFF00000001の62bitの結果が返ってきました。
参考になりましたありがとうございます。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Visual Studio Code 関数の使い方について 3 2023/05/31 13:15
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Excel(エクセル) Excel 2019 32-bit版を64-bit版にするには? 8 2023/07/28 14:20
- TOEFL・TOEIC・英語検定 bitとlittleは両方ともに同じ 1 2022/08/10 13:03
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- その他(AV機器・カメラ) オーディオインターフェイスの24bitなど量子化bit数はどこで設定できるのでしょうか? 1 2022/06/26 07:58
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- 英語 英文和訳についての質問です。 2 2023/06/23 06:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のサフィックスについて
-
C++のActiveX DLLでポインタを...
-
VBA public変数はどのようなこ...
-
他のフォームから別のフォーム...
-
チェックボックスを操作できな...
-
エクセルVBAでテキストボッ...
-
オートメーションで作成したExc...
-
RichTextBoxで指定行の色を自動...
-
クリップボードにアクティブウ...
-
ClickとChangeイベントの違いは...
-
レコードセットにnullの場合
-
TEXです
-
SavePictureで保存できない
-
メニュー追加の方法
-
C#を勉強していて、指定したフ...
-
VB.NETでのイベントの途中終了
-
GetNextWindowがDLLファイルUse...
-
VB6でマウスのドラッグで範囲を...
-
パーソナルXLSBのfuctionを呼び...
-
アクセスできない保護レベルエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のサフィックスについて
-
C言語で32Bit*32Bitの演算は出...
-
変数の型でlong longとunsigned...
-
初期化関数でmallocしたい
-
「ずっと憧れていました」は英...
-
アドレスp (char *p) からの連...
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
チェックボックスを操作できな...
-
【VB.NET】テキストボックスに...
-
他のフォームから別のフォーム...
-
VB.NETでのイベントの途中終了
-
visual basic初心者です。 visu...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
レコードセットにnullの場合
-
String型の値にスラッシュをつ...
-
VBAでcallで呼び出したsubを終...
おすすめ情報