言語モデルは、「SYSCALL」「C」「STDCALL」「PASCAL」「BASIC」「FORTRAN」のいずれかです。デフォルトは「SYSCALL」です。各指定には、次の効果があります。
内容 | SYSCALL | C | STDCALL | PASCAL |
引数をスタックに積む順序 | 後から | 後から | 前から | 前から |
引数をスタックから除去する側 | 呼び出し側 | 呼び出し側 | 呼び出され側 | 呼び出され側 |
アンダーバー「_」の付加 | なし | あり | あり | なし |
大文字と小文字の区別 | あり | あり | あり | なし |
「BASIC」と「FORTRAN」は「PASCAL」と同じです。
「C」「SYSCALL」を指定すると、引数は後ろからスタックに積まれ、プロシージャの呼び出し側がスタックを復元します。
「C」「SYSCALL」以外を指定すると、引数は前からスタックに積まれ、呼び出されたプロシージャの RET 命令にスタック調整のコードが付加されます。
「C」「STDCALL」の場合、プロシージャ名の先頭にアンダーバー「_」が付加されます。
言語モデルは、PROC および INVOKE (拡張 CALL) 文が生成するコードに影響します。
参照 PROC、INVOKE、PROTO、EXTRN、EXTERNDEF、.MODEL、高級言語とのリンク