【初心者歓迎】C/C++室 Ver.48【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.48【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト693:デフォルトの名無しさん 08/02/15 02:00:33 unionの使い方間違えてないか? 694:デフォルトの名無しさん 08/02/15 02:02:51 >>690 64ビットの値を返すときは、EDX:EAX。 こんな関数をコンパイルさせたら、 long long mul(int a, int b) { return static_cast<long long>(a, b); } こんな出力だった。 ; Line 3 mov eax, DWORD PTR _a$[esp-4] imul DWORD PTR _b$[esp-4] ; Line 4 ret 0 695:デフォルトの名無しさん 08/02/15 02:02:56 >>692 試しに、printf("%u\n", A.FILED.element4)にしてみたら? >>693 適切かどうかは兎も角、間違ってはいないんじゃないか? 696:692 08/02/15 02:19:25 >>695 上手くいってないような雰囲気です。 どっか自分が処理を間違えているかもしれないので、 原因を探してみます。 697:デフォルトの名無しさん 08/02/15 02:47:09 手元のgccだとちゃんと1になるけどなぁ。 698:デフォルトの名無しさん 08/02/15 02:47:14 >>694 上位32bitがEDXに格納されるのは解りました。 それをどうやってUINT64の変数に代入するのでしょうか。 一応、以下みたく物凄く邪道な感じでやってみたり・・・ UINT64 mul64(UINT a, UINT b) { FILETIME c; _asm { mov eax, a mul b mov c.dwHighDateTime, edx //mov dword ptr [ebp-8],eax mov c.dwLowDateTime, eax //mov dword ptr [ebp-4],edx } return *(UINT64*)&c; } >mov dword ptr [ebp-8],eax >mov dword ptr [ebp-4],edx のインラインアセンブラでの正しい記述方法が解らないです。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch