On Mon, Aug 05, 2002 at 03:04:43PM -0500, Richard A. Smith wrote:
> I see in the code that a reboot=b option makes linux switch back to
> real mode and do a ljmp ffff:0000.  Can someone explain why this
> address is ffff:0000 rather than the boot vector of 
> f000:fff0?

These are the same addresses in real mode, memory addresses are expressed
in a segment:offset notation where segment and offset are 16 bit numbers.
However the x86 still only has a 20 bit address space when in real mode.

segment and offset are both 16 bit wide but the low 12 bits of segment
overlap with the high 12 bits of offset.  This means that increasing
segment by 1 actually increases the physical address with 16, even though
one segment is said to be 64k bytes large since offset is a 16 bit number.

f000:fff0 means a physical address of 0xffff0.
ffff:0000 also means the same address 0xffff0.

Real mode is funny.

To try to answer your question, I used to type ffff:0 because it was fewer
characters, maybe that's why they do it in Linux as well.  :)


//Peter

Reply via email to