第10章 オブジェクトの配置 |
「第9章 オプションスイッチ」の「-A,-F,-O,-R CSEG FREEブロックの最適化ローディング」での説明のように、リンク時に最適化の指定をするとオブジェクトの配置が通常のリンク結果と比べ異なります。最適化ローディングには、4種類の方法がありますが、次に各最適化指定時のオブジェクト配置について説明します。
CSEGにはINBLOCK(4096バイトの境界内に配置する)指定とFREE(4096バイトの境界に関係なく配置する)指定の2とおりの配置指定がありますが、−Aを指定した場合はINBLOCK/FREEに関わらずサイズの大きいものから順に最適な位置へ配置されます(このときINBLOCK指定のセグメントは4Kバイト境界に対して境界合わせを行ない、FREE指定のセグメントは境界合わせを行ないません)。
たとえば、次のようなオブジェクト群があります。
これを−Aを指定してリンクを行うとINBLOCK/FREE指定のセグメントブロックをサイズの大きい順に最適な位置へ配置されますので次のようになります。
L86K -A A B C D;
この例の場合、4096バイトの境界線上に配置されるセグメントがFREE属性であるためオブジェクトDに対する境界合わせは行なわれません。オブジェクトDがINBLOCK属性だった場合は次のようになります。
[←] | [INDEX] | [→] |
(C)SEGA ENTERPRISES, LTD., 1998