Fortran/MASM の呼び出し規約 (Windows* のみ)

MASM プロシージャーの呼び出し規約は、PROTO 宣言子および PROC 宣言子で指定します。PROTO 宣言子および PROC 宣言子の STDCALL オプションは、プロシージャーに対して STDCALL の呼び出し規約を使用するように指示します。PROTO 宣言子および PROC 宣言子の C オプションは、プロシージャーに対して C 呼び出し規約を使用するように指示します。PROC 宣言子の USES オプションは、呼び出された MASM ルーチンで、どのレジスターを保存し復元するのかを指定します。PROTO 宣言子および PROC 宣言子の VARARG オプションは、プロシージャーで可変長引数を許可するように指示します。

例えば、次の Fortran と MASM の文は、STDCALL の呼び出し規約を使用して、インテル® Visual Fortran から呼び出すことができる MASM 関数を設定しています。

 ! Fortran STDCALL interface prototype.
     INTERFACE
        INTEGER FUNCTION forfunc(I1, I2)
        !DEC$ ATTRIBUTES STDCALL :: forfunc
        INTEGER I1
        INTEGER(2) I2
     END INTERFACE
     WRITE (*,*) forfunc(I1,I2)
 ! End Fortran STDCALL interface 
 ;MASM STDCALL Prototype
         .MODEL FLAT, STDCALL
 forfunc PROTO STDCALL, forint: SDWORD, shorti: ptr SWORD
         .CODE
 forfunc PROC STDCALL, forint: SDWORD, shorti: ptr SWORD
         ...
 forfunc ENDP END

次の Fortran と MASM の文は、C の呼び出し規約を使用して、Fortran から呼び出すことができる MASM 関数を設定しています。

 ! Fortran C interface prototype
     INTERFACE
        INTEGER FUNCTION Forfunc (I1, I2)
        !DEC$ ATTRIBUTES C, ALIAS:'Forfunc' :: Forfunc
        INTEGER I1
        INTEGER(2) I2
     END INTERFACE
     WRITE(*,*) Forfunc (I1, I2)
     END
 ! End Fortran C interface 
;MASM C PROTOTYPE
        .MODEL FLAT, C
  Forfunc PROTO C, forint:SDWORD, shorti: ptr SWORD
        .CODE
  Forfunc PROC C, forint:SDWORD, shorti: ptr SWORD
        ...
  Forfunc ENDP END

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

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