インテル® Fortran/MASM が混在したプログラムの概要

Microsoft* Macro Assembler (MASM) を使用すると、アセンブリー言語プログラミングに特有の長所をインテル® Fortran と組み合わせることができます。適切に構築されたアセンブリー言語のプロシージャーは、インテル® Fortran のプログラムとサブプログラムから呼び出すことができます。MASM は、インテル® Fortran、C、および Visual C++* と組み合わせて使用することができます。これらの高水準言語から MASM プロシージャーを呼び出したり、MASM プログラムからこれらの言語を呼び出すことができます。MASM と他の言語のインターフェイスに関する詳細は、『Microsoft* MASM Programmer's Guide』(英語) を参照してください。

Fortran ソースモジュールをインテル® Fortran でコンパイルし、アセンブリー言語プロシージャーを MASM アセンブラーでアセンブルします。その後、2 つのオブジェクト・ファイルをリンクします。次の例は、Fortran から MASM アセンブリー言語プログラムを呼び出す方法を示しています。

Fortran コード:

   INTERFACE
    INTEGER (4) FUNCTION POWER2 (V,E)
    !DEC$ ATTRIBUTES STDCALL :: Power2
    INTEGER V, E
    END FUNCTION
  END INTERFACE

MASM コード:

  POWER2 PROTO STDCALL, v, e
  ...
  POWER2 PROC STDCALL, v, e
  ...
  POWER2 ENDP
  END

上の例では、Fortran の MASM に対する呼び出しは power2(v,e) です。これは Fortran 関数の呼び出しと同じ形式になっています。

この言語が混在した呼び出しと、2 つの Fortran モジュール間の呼び出しには、2 つの違いがあります。

  1. power2(v,e) サブプログラムは、標準の MASM 構文を使用して MASM に実装されています。MASM の PROTO 宣言は、プロシージャーが STDCALL 呼び出し規約を使用するように指定しています。

  2. Fortran モジュールの INTERFACE 文は STDCALL 呼び出し規約を指定しているため、Fortran プログラムは MASM プロシージャーが指定している規則を使用します。

関連情報


このヘルプトピックについてのフィードバックを送信

© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。