セクションの開始アドレスを指定します。
[指定形式]
-STARt=suboption [, ...]
suboption := placement-unit[, ...][/address]
placement-unit := overlay-sections
| section
overlay-sections := ( section-list : section-list [: ...] )
section-list := section [, ...]
|
絶対アドレス・セクションをアドレスの小さい順に配置し,絶対アドレス・セクションの末尾から指定された入力ファイル順に出現する相対アドレス・セクションを配置します。
[詳細説明]
- | セクションsectionの開始アドレスaddressを指定します。
addressは16進数で指定します。 |
- | sectionにはワイルドカード(*)も使用可能です。
ワイルドカードで指定したセクションは,入力順に展開します。 |
- | セクションをコロン(:)で区切ることにより,複数のセクション(カンマ(,)で区切って指定)を同一アドレスに割り付ける(セクション・オーバーレイ配置)ことが可能です。
同一アドレスに割り付け指定したセクション間は,指定順に割り付けます。
また,丸かっこ“()”で囲むことにより,オーバーレイ配置する対象セクションを変更することができます。 |
- | 同一セクション内のオブジェクトは,入力ファイルの指定順,入力ライブラリの指定順に割り付けます。 |
- | アドレスの指定を省略した場合は,0番地から割り付けます。 |
- | -startオプションで指定していないセクションは,最終割り付けアドレスに続いて割り付けます。 |
[使用例]
- | 以下の順番でオブジェクトを入力する場合のセクション配置を示します(かっこ内は各オブジェクトが持つセクションです)。 |
tp1.obj(A,D1,E)
tp2.obj(B,D3,F)
tp3.obj(C,D2,E,G)
lib.lib(E)
- | -start=A,B,E/400,C,D*:F:G/8000オプションを指定した場合 |
- | “:”で区切ったC,F,Gセクションは,同一アドレスに割り付きます。 |
- | ワイルドカードで記述したセクション(ここではDで始まる名前のセクション)は,入力した順番で割り付きます。 |
- | 同名セクション内(ここではEセクション)は,入力したオブジェクトから順番に割り付きます。 |
- | ライブラリ入力による同名セクション(ここではEセクション)は,入力オブジェクトの次に割り付きます。 |
- | -start=A,B,C,D1:D2,D3,E,F:G/400オプションを指定した場合 |
- | “:”で区切った直後のセクション(この例の場合はA,D2,G)を先頭として,それぞれの先頭が同一アドレスに割り付きます。 |
- | -start=A,B,C,(D1:D2,D3),E,(F:G)/400オプションを指定した場合 |
- | “()”で同一アドレス配置を囲んだ場合,“()”の直前のセクション(この例の場合はC,E)の直後を先頭として,“()”内の同一アドレス配置が行われます。 |
- | “()”の直後のセクション(この例の場合はE)は,“()”内の最後尾のセクションの直後に続けて配置されます。 |
[備考]
- | 本オプションは,-form={object|relocate|library}オプション,または-stripオプションを指定した場合は無効となります。 |
- | “()”は,ネストして記述することはできません。 |
- | “()”内では,1つ以上のコロン“:”の記述が必要です。
“:”を記述しない場合,“()”を記述することはできません。 |
- | “()”を記述した場合,“()”の外にコロン“:”を記述することはできません。 |
- | “()”を使用して本オプションを記述した場合,リンカの最適化機能は無効になります。 |