Linker: Porovnání verzí

Přidáno 18 bajtů ,  před 9 lety
 
== Relaxace ==
{{Upravit část}}
 
Protože překladač nemá žádné informace o rozložení objektů v konečném výstupu, nemůže využít zkrácené nebo účinnější instrukce, které vyžadují adresy jiných objektů. Například skoková instrukce může být vyjádřena absolutní adresou nebo offsetem vztahujícím se k momentální pozici, přičemž hodnota offsetu může mít v závislosti na vzdálenosti od cíle různou délku. Generováním nejkonzervativnějších instrukcí (obvykle jsou to ty největší relativní či absolutní varianty, to závisí na platformě) a přidáním oddychových nápověd, je možné během konečného sestavování tyto nahradit kratšími a efektivnějšími instrukcemi. Tento krok je možné provést až po té, co byl celý kód přečten a byly stanoveny dočasné adresy. Proces relaxace pak provede přeadresování, což umožní celkové odlehčení programu. Nahrazené posloupnosti instrukcí jsou kratší, což tomuto procesu umožňuje vždy počítat s optimálním řešením pevného uspořádání objektů. Pokud tomu tak není, dojde ke konfliktu, a linker musí zvážit její výhody či další možnosti.
 
Neregistrovaný uživatel