Segmentation is another approach to supporting memory virtualization. In this question, you will try to set the base and bounds registers, per segment, correctly. Here we assume a simple segmentation approach that splits the virtual address space into two segments. YOU MAY SHOW YOUR CALCULATIONS FOR PARTIAL POINTS.
Segment 0 acts like a code and heap segment; the heap grows towards higher addresses.
Segment 1 acts like a stack segment; it grows backwards towards lower addresses.
In both segments, the bounds (or limit) register just contains the "size" of the segment.
Assume a 16-byte virtual address space. Virtual address trace: 0, 1, 2, 3, 15, 14, 13 - only these are valid and the rest are NOT.
Virtual address 1 translates to physical address 101.
Virtual address 13 translates to physical address 998.
Segment 0 Base?
Segment 1 Base?
Segment 0 Bounds?
Segment 1 Bounds?