title: What are the segment and offset in real mode memory addressing?
body: <p>I am reading about memory addressing. I read about segment offset and then about descriptor offset. I know how to calculate the exact addresses in real mode. All this is OK, but I am unable to understand what exactly offset is? Everywhere I read:</p>
  <blockquote>
  <p>In real mode, the registers are only 16 bits, so you can only address
  up to 64k.  In order to allow addressing of more memory, addresses are
  calculated from  <code>segment * 16 + offset</code>.</p>
  </blockquote>
  <p>Here I can understand the first line. We have 16 bits, so we can address up to 2^16 = 64k.</p>
  <p>But what is this second line? What the segment represent? Why we multiply it with 16? why we add offset. I just can't understand what this offset is? Can anybody explain me or give me link for this please?</p>