Esta es una pregunta mucho más compleja de lo que probablemente se haya dado cuenta. En el 8086, es bastante simple: se inicia en FFFF: 0000 (16 bytes antes del final de la memoria).
La parte engañosa está en el 286 o superior (es decir, cualquier cosa remotamente moderna). En estos casos, aún se inicia 16 bytes antes del final de la memoria, pero, por supuesto, con el direccionamiento de 24 bits (286) o el direccionamiento de 32 bits (386+), la dirección física es diferente. Que muchos no parecen complejos, pero realmente lo es. La complejidad surge del hecho de que el procesador comienza a ejecutarse en modo real, pero esa dirección (y todas las que están cerca) no son visibles para el procesador en modo real. Por lo tanto, inicialmente se ejecuta en un modo bastante extraño donde está en modo real desde la mayoría de las perspectivas, pero algunos de los bits altos de la dirección que parece ejecutar se ignoran y en su lugar básicamente están conectados a 1, por lo que la parte superior de la dirección física el espacio es visible para el procesador. Luego, cuando ejecuta un salto lejano, el procesador cambia silenciosamente al modo real "normal".
El BIOS se inicia en modo real, pero por lo general se ejecuta de esa manera por poco tiempo antes de configurar un entorno de modo protegido (mínimo) y cambiar al modo protegido. A partir de ahí, el BIOS ejecuta la autoprueba de encendido normal, descomprime el BIOS y lo copia en la RAM que es en realidad ubicada en FFFF: 0000, vuelve al modo real y ejecuta el código en ROM periféricas adicionales si ' re marcado para ejecutarse automáticamente (por lo general, volver al modo protegido en el proceso, pero volver al modo real cuando haya terminado). Uno de ellos normalmente será el controlador de disco duro que tendrá el código para leer automáticamente en un bloque de arranque desde un disco, y ejecutarlo para comenzar a cargar el sistema operativo y tal.
Puntos de bonificación para una explicación detallada, ¡gracias! –