[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: regarding 0x7c00

On Mon, Dec 25, 2000 at 03:40:28AM -0500, kamesh jayachandran typed:
> Once the boot device has been selected ,its first sector is loaded in to 
> memory at address 0x7c00 and given control"
> what is the significance of this memory address 0x7c00?

Nothing very significant as far as I know - It has been done that way from
the early phases of the IBM PC design, and it continues to be done that

0x7C00 is 1024 bytes below 32K - Maybe the guys who wrote the BIOS at
IBM wanted the load the boot code as high into memory as possible, and
the smallest machine they could imagine in the IBM PC architecture was a
32KB RAM system - and so that was about the highest address at which
they could load the boot code without risking the possibility that the
user didn't have enough memory and they were loading the code into blank
space ! :):):) (Of course since the boot sector is only 512 bytes, they
coupld presumably have loaded it at 0x7E00 - so may be they thought
someday they might need 1024 bytes for the boot code)

> what is realmode?

All machines in the x86 architecture start up in what is called the
'Real" mode. This was the only mode available in the original 8086/88 
processors and you can access only 1MB of RAM (and that too only in
"segments" of 64KB at a time - with manipulation a few segment registers
necessary to access the entire area).

Any fundamental text book on the x86 processor architecture should be
able to give you details on the Real mode and Protected modes.