Solved

Far pointers

Posted on 2000-04-15
5
198 Views
Last Modified: 2011-09-20
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
Comment
Question by:r_sam_14
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 

Author Comment

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

Accepted Solution

by:
nietod earned 25 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

by:nietod
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

by:r_sam_14
ID: 2720018
nietod

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

Expert Comment

by:nietod
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

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

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

Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
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 user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question