OPTLINK
OPTLINK 呼び出しインターフェース規約は、SYSTEM 規約よりも高速な呼び出しを提供します。
次の規則が OPTLINK に適用されます。
- プログラム名には、疑問符文字 (?) の接頭部が付加される。
- パラメーターは、スタック上で右から左へプッシュされる。
- 呼び出し元は、パラメーターをスタックから除去する。
レジスターは、以下のように使用されます。
- 汎用レジスター EBP、EBX、EDI、および ESI は、呼び出しの全体にわたって保持される。
- 汎用レジスター EAX、EDX、および ECX は、呼び出しの全体にわたっては保持されない。
- 浮動小数点レジスターは、呼び出しの全体にわたっては保持されない。
- 左端の字句単位である 3 つの規格合致パラメーター (規格合致パラメーター は 2 バイトおよび 4 バイトのバイナリー項目とすべての
ポインター型) は、それぞれ EAX、EDX、および ECX で渡されます。
- 最大 4 つの浮動小数点パラメーター (最初の 4 つの字句単位) は、浮動小数点レジスター・スタックにおいて、拡張精度 (80 ビット) 形式で受け渡される。他のすべてのパラメーターは、ランタイム・スタック上で受け渡される。
- レジスター内のパラメーター用のスペースはスタック上に割り振られるが、パラメーターはそのスペースにはコピーされない。
- 64 ビットのバイナリー項目を除き、一致する戻り値は EAX に返される。
64 ビットのバイナリー項目の場合は、上位 32 ビットが EDX に返され、下位 32 ビットが EAX に返される。
- 浮動小数点戻り値は、拡張精度形式で浮動小数点スタックの一番上のレジスターに戻される。
- 集合を返す呼び出しは、呼び出し元により決定されたストレージ域のアドレスである最初の隠しパラメーターを受け渡す。この領域は返される値になる。ポインターの隠しパラメーターは、常に規格合致外とみなされて、レジスターに受け渡されない。呼び出し先プログラムは、戻る前にこのポインターを EAX にロードする必要がある。
関連参照
CALLINT
ENTRYINT
コンパイラー指示ステートメント
|