This is one of a number of machine-characteristics.
When the boot sector code gets control what information does it receive from the BIOS? The table below shows some of the important register contents as found on different machines.
|Machine||Direction Flag||Interrupt Flag1||Start Address||Initial Stack2||DS||Floppy Boot DL3||USB HDD-Image Boot DL4|
|Dell Latitude XP 475D laptop. 80486 75MHz. Phoenix BIOS 1.10||0||1||0000:7C00||0030:0100
|AOpen motherboard. Pentium 3 600MHz. Award BIOS 3.60||0||0||0000:7C00||0000:0400
|Viglen MPC-L. Geode 399MHz. ION A503 BIOS||0||0||0000:7C00||1000:7FE2
|Asus EEE 4G netbook. Celeron M ULV 630MHz. AMI ASUS 701 BIOS||0||1||0000:7C00||0000:7BD2
|Gateway laptop. Dual-core Core 2 T5300 1.7GHz. Phoenix BIOS||0||1||0000:7C00||0000:03E2
- The location of the data segment (shown as DS) is very varied.
- The location of the boot-time stack is just as varied.
- Some machines give control with interrupts enabled (interrupt flag set to 1), others with interrupts disabled.
- Bear in mind that there is no guarantee the values will always be as shown. These are just outputs from testing and may be specific to a certain implementation of the BIOS. However, they do show the kind of information you can expect. If writing a boot sector you will probably want to establish a valid environment by setting your own stack, enabling or disabling interrupts, setting segment registers etc.