很有趣的BIOS加载MBR到0X7C00的故事

http://www.glamenv-septzen.net/en/view/6

。。。

The mysteries arround "0x7C00" in x86 architecture bios bootloader

Do you know "0x7C00", a magic number, in x86 assembler programming ? 
"0x7C00" is the memory address which BIOS loads MBR(Master Boot Record, a first sector in hdd/fdd) into. OS or bootloader developer must assume that their assembler codes are loaded and start from 0x7C00.

But...1st, you may wonder.

"I read all of Intel x86(32bit) programmers manual, but did not found the magic number 0x7C00."

Yes.0x7C00 is NOT related to x86 CPU. It's natural that you couldn't find out it in cpu specifications from intel. Then, you wonder, "Who decided it ?"

2nd, you may wonder:

"0x7C00 is 32KiB - 1024B at decimal number. What's this number means ?"

Anyone decided it. But, why he/she decided such a halfway address?

Hum...There're TWO questions(mysteries) arround the magic number "0x7C00".

  1. Who decided "0x7C00" ?
  2. What "0x7C00 = 32KiB - 1024B" means ?

Okay, let's dive into the secret of BIOS for "IBM PC 5150", ancestor of modern x86(32bit) PCs, with me...!! 。。。

。。。

上一篇:关于Oracle10g归档参数的研究


下一篇:内核与内核模块:depmod,lsmod,modinfo,insmod,rmmod,mdprobe