Hi, not sure if this one has been asked before.  I am very conversant with the segment:offset addressing scheme, whereby to get a real address, you take the segment part, multiply it by 16 (or just add a zero on the end), then you add the offset address to it.  However, I understand that under protected mode its a lot different?  How do i calculate the real address from a ds:si address in protected mode?  Please help!!
Posted on 2011-08-25 06:33:21 by malh
In protected mode, you don't use ds:si.
You have 32-bit registers, so you'd use esi instead (or any other register, unlike 16-bit mode, there are no limits on which registers you can use in addressing).
And you have a flat address space, meaning that you can reach the entire 4 GB (or at least a generous subsection thereof, eg 32-bit Windows has 2 GB application space, and 2 GB reserved for system), so you never worry about segment registers (which aren't segment registers anyway in protected mode, but 'selectors').
Posted on 2011-08-25 08:43:31 by Scali
Might find this useful...

http://files.osdev.org/mirrors/geezer/johnfine/segments.htm

Best,
Frank

Posted on 2011-08-25 15:28:55 by fbkotler