Microsoft Macro Assembler (MASM) を使うと,機械語プログラミングに特有の長所を Visual Fortran と組み合わせることができます。機械語の手続は,適切に作成すれば,Visual Fortran のプログラムと副プログラムから呼び出すことができます。MASM は,Visual Fortran,C,および Visual C++ と組み合わせて使用することができます。これらの高水準言語は MASM 手続を呼び出すことができ,MASM プログラムからもこれらの言語を呼び出すことができます。MASM と他の言語のインタフェースについての詳細は,『Microsoft MASM Programmer's Guide』を参照してください。
Fortran ソース・モジュールを Visual 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 手続が指定しているのと同じ規約を使用します。
この節では次のトピックを扱っています。