Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is significance of memory at 0000:7c00 to booting sequence?

Why does bios read at partition's boot record at 0000:7c00 ? What is special about that address ? what ':' doing in referencing an address ?

like image 847
Xinus Avatar asked Jan 13 '10 17:01

Xinus


2 Answers

The simple answer is that 7C00h is 1k (512 bytes for the boot sector plus an additional 512 bytes for possible boot sector use) from the bottom of the original 32k installed memory.

The happy answer is that org 7C00h has become synonymous with boot sector - boot loader programming.

like image 141
Mike Gonta Avatar answered Nov 09 '22 15:11

Mike Gonta


The ":" is a holdover from segmented memory days, when PCs ran in real mode and could only do 64K at a time. The number to the left of the ":" is your segment, the number to the right is your address.

The windows debug command accepts this notation if you want to poke around in memory yourself:

C:\Users\Seth> debug
-d0000:7c00
0000:7C00  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:7C10  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:7C20  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:7C30  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:7C40  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:7C50  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:7C60  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:7C70  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

With regard to this particular address, it's just an address that was picked to load the MBR, See: https://web.archive.org/web/20140701052540/http://www.ata-atapi.com/hiwmbr.html

"If an MBR is found it is read into memory at location 0000:7c00 and INT 19 jumps to memory location 0000:7c00"

like image 39
Seth Avatar answered Nov 09 '22 16:11

Seth