Assembly Question (Segment:Offset)
Hi, I am teaching myself assembly language for the 80X86 familly of microprocessors. I have already read some assembly tutorials for 80X86, and am now reading one at:
http://www.compapp.dcu.ie/~ray/CA225.html#Index
I am haveing dificulties understanding the whole segemnt/offset thingy, so let me explain what I understand:
I understand that It was believed 640K of RAM was enough for anyone, and with the 16 bit registers you could not address much memory anyway, so when memory capacity was extended to 1Megs memory was then split into 64k segments, so the use of a segment register that is 16 bits can address 2^16 = 65.5k ? so in order to address more then 1M of RAM a second register was used as an offset, then combining the segment and offset registers, shifting the segment to the left 4 places, we could have a 20 bit address, that can address more then 1Megs of system memory.
That is what I understand, or at least think I understand, and I was woundering if somebody can clerify that, and tell me, are segments still 64k or have they grown, because i read with the extended 32 bit register for the offset you can address more memory, so are segments still 64k or have they goten biger? And can you clerify that what I said is corect.