What is a base register table in systems programming? Select the description that best matches its purpose during assembly and linking.

Difficulty: Medium

Correct Answer: a structure used to remember which general-purpose registers are available as base registers and what base addresses they contain

Explanation:


Introduction / Context:
On architectures that support base-displacement addressing, a base register table helps assemblers, linkers, and loaders track which registers hold base addresses and what those addresses are. This facilitates correct code generation and relocation.


Given Data / Assumptions:

  • Target architecture supports using general-purpose registers as base registers.
  • Assembler or relocation process must know current base assignments.
  • Programs may switch base registers for different segments or modules.


Concept / Approach:
A base register table maintains mappings from register identifiers to base addresses. During code generation and relocation, effective addresses are formed as base + displacement. The table ensures correctness when registers are repurposed or when code is moved (relocated) to a different memory region.


Step-by-Step Solution:
1) Identify need: efficient addressing through base + displacement.2) Track which registers currently serve as base registers.3) Record the base address for each such register.4) Use this table during assembly/relocation to compute correct effective addresses.


Verification / Alternative check:
Examine assembler listings: base register usage and associated displacement calculations typically reference an internal structure equivalent to a base register table, confirming the role described.


Why Other Options Are Wrong:
Option a is too generic. Option c describes multiprogramming, not the table’s function. Option d is about source notation, not the internal table. Option e concerns memory management algorithms, unrelated to base registers.


Common Pitfalls:
Confusing base register tables with page tables or segment descriptors; the former is an assembler/relocation aid, not an OS-level memory mapping structure.


Final Answer:
a structure used to remember which general-purpose registers are available as base registers and what base addresses they contain

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion