Next Previous Contents

6. 特別なセグメント(Special segments)

リンカーに組み込まれているコンフィグ・ファイルには、コンパイラ及びそれに付随するライブラリ用の特別な意味を持つセグメントが含まれています。
コンフィグ・ファイルを書き換える場合、以下の情報が必要となります。

6.1 INIT

INITセグメントは、main()関数実行後に再利用する事ができる初期化コードのために利用されます(プログラムがRAMで実行されることを条件とする)。
例えば、実際にメモリの制約があるシステムにおいて、ヒープにINITセグメントを追加できます。

6.2 LOWCODE

LOWCODEセグメントは、バンクアウトされない事が保証されるセグメントです。
つまり、割り込みルーチンなど、いつでも利用可能なセグメントとなります。

6.3 STARTUP

STARTUPセグメントは、Cソフトウェアのスタック及びライブラリを初期化するスタートアップコードを含みます。
いくつかのプラットフォームにおいて最下位プログラムアドレスにロードされる必要があるため、独立したセグメントに配置されます。

6.4 ZPSAVE

The ZPSAVE segment contains the original values of the zeropage locations used by the ZEROPAGE segment. It is placed in its own segment because it must not be initialized.


Next Previous Contents