Pregunta

Estoy trabajando en un gestor de arranque en un equipo x86.

Cuando el BIOS copia el contenido del MBR para 0x7c00 y salta a la dirección, hay un significado estándar para el contenido de los registros?Hacer los registros de los valores estándar?

Sé que los registros de segmento se establecen normalmente a 0, pero a veces puede ser 0x7c0.¿Qué acerca de los otros registros de hardware?

¿Fue útil?

Solución

Esta temprana en el entorno de ejecución es altamente definido por la implementación, es decir, la aplicación de su BIOS.Nunca hacer ninguna hipótesis sobre el contenido de los registros.Podrían ser inicializado a 0, pero pueden contener un valor aleatorio igual de bien.

a partir de la OS dev Wiki, que es de donde puedo obtener información cuando estoy jugando con mi juguete OS

Otros consejos

La mejor opción sería la de no suponer nada.Si tienen sentido, usted encontrará que desde el otro lado, cuando se necesita la información que proporcionan.

Undefined, creo?Yo creo que depende de la placa base y la CPU, y debe ser tratada como al azar para su propio bien.

Apuesta más segura es la de asumir indefinido.

Siempre asuma indefinido, de lo contrario llegarás a problemas de mal si alguna vez tratas de puerto arquitecturas.

No hay nada como el dolor de portar el código que supone todo lo que no se pondrá a cero.

La única cosa que sé que estar bien definido, es el procesador de estado inmediatamente después del restablecimiento.

Para el registro se puede encontrar que en Intel Manual para Desarrolladores de Software Vol 3 capítulo 8:"La ADMINISTRACIÓN del PROCESADOR Y la INICIALIZACIÓN" en la mesa titulada "IA-32 Procesador Estados Siguientes de encendido, Reset, o INIT"

Siempre se puede inicializar usted mismo para empezar con un estado conocido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top