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 つの違いがあります。
power2(v,e) サブプログラムは、標準の MASM 構文を使用して MASM に実装されています。MASM の PROTO 宣言は、プロシージャーが STDCALL 呼び出し規約を使用するように指定しています。
Fortran モジュールの INTERFACE 文は STDCALL 呼び出し規約を指定しているため、Fortran プログラムは MASM プロシージャーが指定している規則を使用します。
© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。