Difficulty: Easy
Correct Answer: cannot be made to execute in any area of storage other than the one designated for it at the time of its coding or translation
Explanation:
Introduction / Context:
Executable images may be relocatable, position-independent, self-relocating, or non-relocatable. Understanding the differences is essential for linker/loader design and systems programming. This question asks you to identify the defining property of a non-relocatable program.
Given Data / Assumptions:
Concept / Approach:
A non-relocatable program is bound to a fixed load address determined at coding/translation time. Any attempt to load it elsewhere will cause incorrect jumps or data accesses, because absolute addresses remain unadjusted. This contrasts with relocatable objects (loader adjusts addresses) and self-relocating code (program patches itself on startup).
Step-by-Step Solution:
1) Identify absolute addressing in the image.2) Confirm lack of relocation info or position independence.3) Conclude the program must execute only at its designated memory location.
Verification / Alternative check:
Historical fixed-address monitors and ROM-based firmware without relocation support exemplify non-relocatable code: moving them in memory breaks control flow and data references.
Why Other Options Are Wrong:
Common Pitfalls:
Confusing “relocatable” with “position-independent.” Relocatable needs a relocating loader; position-independent can run anywhere without relocation. Non-relocatable can run only at one specific address.
Final Answer:
cannot be made to execute in any area of storage other than the one designated for it at the time of its coding or translation.
Discussion & Comments