calling-convention

    5

    1答えて

    P/Invokeを使用して明示的に64ビットの.NETアプリケーションを使用して64ビットのネイティブライブラリと対話する場合、DllImport属性のCallingConventionプロパティは実質的に無視されますか? "従来の" x86では、呼び出し元や呼び出し先がスタック変数をクリーンアップする方法(関数自体が特定のCPUレジスタなどを使用する方法も含む)を指定する必要があるため、これを尋

    16

    1答えて

    のx86-64(Windowsの以外のすべてで使用される)システムV ABIはhttp://x86-64.org/documentation/abi.pdfに住んでいたが、そのサイトは今、インターネットから落ちました。 文書のための新たな権威家はありますか?

    5

    1答えて

    x64プラットフォームのマイクロソフトの呼び出し規則がいくつかの場所で1つに絞り込まれていることがわかりました。呼び出し元がスタックをクリーニングして(cdecl)、パラメータがスタックとレジスタの組み合わせで渡されます正確な詳細はこちら)。私はこれがOSの呼び出し規約であれば、おそらくWindowsをターゲットとする他のコンパイラ(例えばmingw-w64)もそれに従うと仮定します。 他の主要な

    5

    1答えて

    私はアセンブリ言語をやり直すことを学んでいます。これまで私が持っていた唯一の問題はCへの呼び出しでした。私の持っている本は32ビットに合わせてあり、私は64ビットで作業しています。明らかに呼び出し規約に大きな違いがあり、http://www.x86-64.org/documentationサイトがダウンしています。だから、いくつかの掘削/テストの後、Cでダミーのプログラムをコンパイルし、これに3日

    8

    1答えて

    私はsetjmp/longjmp CPUの全体的なコンテキスト(つまり、すべてのxmm、fpuスタックなど)を保存するx86-64システム用のカスタム実装呼び出し先保存レジスタ)。これはアセンブリに直接書き込まれます。 コードは、最小限の例(アセンブリソースから直接呼び出すとき)で正常に動作します。この問題は、パラメータが自作setjmp/longjmp関数に渡される方法のために、Cコードで使用す

    0

    1答えて

    説明は空の文字列で始まり時間をテストし、文字列に0を追加し、その後に1桁の数字があるか、または2桁の時間を追加しますさもないと。あなたのテストに最終変数MIN_2DIGITSを使用し、作成する文字列を追加するためにのみ+ =演算子を使用してください....コードは、ここではのコメントコードに行く必要があります。方法その##で入力された時間、分、秒:##:##形式 私はこれまでのところ、これを試して

    7

    1答えて

    レジスタに渡されるのは、自明ではないコピー・ctorと重要でないdtorのない小さな構造体です。 ARM Procedural Call Standardを引用 :32ビットよりも大きい 基本タイプがパラメータとして渡される、または関数呼び出しの結果として返されてもよいです。 これらのタイプがコアレジスタにある場合、次のルールが適用されます。  ダブルワードサイズのタイプは、2つの連続するレジス

    0

    2答えて

    私はgdbを実行し、メインとget_inputで逆アセンブルを使用するように、Cプログラムがアセンブリレベルでどのように見えるかを理解しようとしています。プログラムは短く、私はそれに追随することができます。 私は理解していない2行があります。まず、上のメインでは()である: 0x00000000004005a3 <+4>: mov $0x0,%eax 私たちは、RBPの古い値を保存し、RBPへのR

    0

    2答えて

    私はメソッドAとBを持つクラスXを持っています。 私は 以下のようにループを持つクラスYを持っているが、forループ内の別のクラス内のメソッドを呼び出すことが理想的ですか、これを行うのいずれかの理想的な方法はありますか?助けてください。 public class X { public void A() { } public void B() { } }

    7

    2答えて

    私はVisual C++ 2010とMASMをx64-Assemblerとして使用しています。私はこれをやっている理由は、私は別の呼び出し規約を学ぶことができるである ; external functions extern sum : proc ; code segment .code Asm proc ; create shadow space sub rsp, 20