言語モデル

言語モデルは、「SYSCALL」「C」「STDCALL」「PASCAL」「BASIC」「FORTRAN」のいずれかです。デフォルトは「SYSCALL」です。各指定には、次の効果があります。

内容 SYSCALL C STDCALL PASCAL
引数をスタックに積む順序 後から 後から 前から 前から
引数をスタックから除去する側 呼び出し側 呼び出し側 呼び出され側 呼び出され側
アンダーバー「_」の付加 なし あり あり なし
大文字と小文字の区別 あり あり あり なし

「BASIC」と「FORTRAN」は「PASCAL」と同じです。

「C」「SYSCALL」を指定すると、引数は後ろからスタックに積まれ、プロシージャの呼び出し側がスタックを復元します。

「C」「SYSCALL」以外を指定すると、引数は前からスタックに積まれ、呼び出されたプロシージャの RET 命令にスタック調整のコードが付加されます。

「C」「STDCALL」の場合、プロシージャ名の先頭にアンダーバー「_」が付加されます。

言語モデルは、PROC および INVOKE (拡張 CALL) 文が生成するコードに影響します。

参照 PROCINVOKEPROTOEXTRNEXTERNDEF.MODEL高級言語とのリンク

[目次]