スタートアップ ルーチン
ライブラリの start.obj モジュールは、MS-DOS 用のスタートアップ ルーチン (初期化コード) です。MS-DOS またはそれと互換性のある OS を使用しない場合、このスタートアップ ルーチンは使用できません。その場合は、独自のスタートアップ ルーチンを記述して、Light C で作成した関数を呼び出す前に次の状態を整える必要があります。
- プログラムのエントリ ポイントとしてラベル「start」を公開する。
- DGROUP のアドレスを ds および ss レジスタに設定する。
- sp レジスタにスタック領域の上限オフセットを設定する。
- FLAGS レジスタの方向フラグ DF を cld 命令などでクリアする。これは、ライブラリ関数 memcpy などで 8086 ストリング命令が使用されるためです。
- FPU を使用する場合は、finit 命令で FPU を初期化する。
- small/medium モデルで malloc などのメモリ割り当て関数を使用する場合は、size_t 型の広域変数 __heap_top および __heap_bot に、near ヒープの先頭および末尾を示す DGROUP 相対オフセットを設定する。
ライブラリのソース コード start.asm も参考にしてください。