[Webinar] Streamline your web hosting managementRegister Today

x
Solved

# Far pointers

Posted on 2000-04-15
Medium Priority
202 Views
A processor with 20 bit address line can address upto 1 mb where as its Register is 16 bit which means it can have address upto 2tothepower16 bytes .How can the 1mb RAM be addresed by the Register ?
0
Question by:r_sam_14
• 3
• 2

Author Comment

ID: 2719113
The discussion can revole arround Segment:offset and explain what is segment:offset .
0

LVL 22

Accepted Solution

nietod earned 100 total points
ID: 2719157
The segment value and the offset value are botyh 16 bits.  They are mathematically combined to generate a 20 bit address.  To be preceise the address generated is Segment*16+Offset.  Or if you prefere Segment << 4 + offset.  Where that << 4 shifts the segment left 4 bits so its most significant bit is now the high bit of the 20 bit address.
0

LVL 22

Expert Comment

ID: 2719162
So a 16 bit register cannot be used to acccess all of 1M of ram, not by itself.  It must use a segment register to.  for any parituclar vlaue in a segment register, the 16 bit pointer register can access any value within a 64K "window".  By addjusting the segment register, you can move the "window" about in memory and thus address every byte in 1M.

Let me know if you have any questions.
0

Author Comment

ID: 2720018
nietod

Kindly explain me what is segement:offset is ? explain it with example ?
0

LVL 22

Expert Comment

ID: 2720312
In a segmented architecture addresses are (ultimately) specified using two numerical values.  A segment and an offset.  The actual address used when accessing memory is determined by a mathematical formula using these to values.  In the x86 family the formula is segment*16+offset.  That generates an address, a number, that is the memory location to be accessed.  This formula can generate numbers that are larger than either the segment or offset value.  So it can be used to access memory that is at a higher address than could be addressed if only one value (and no formula) was used.   Thus it can be used to access a larger memory space.

I'm not sure how to give you an example.  Does that help?
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Unlike C#, C++ doesn't have native support for sealing classes (so they cannot be sub-classed). At the cost of a virtual base class pointer it is possible to implement a pseudo sealing mechanism The trick is to virtually inherit from a base class…
Container Orchestration platforms empower organizations to scale their apps at an exceptional rate. This is the reason numerous innovation-driven companies are moving apps to an appropriated datacenter wide platform that empowers them to scale at a …
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
###### Suggested Courses
Course of the Month8 days, 1 hour left to enroll