Estoy trabajando en un gestor de arranque pequeño para fines de aprendizaje. ¿Hay alguna especificación/información disponible sobre el tamaño de pila (libre) requerido para una llamada de interrupción de la biosfera?Se requiere un tamaño de pila para la llamada de interrupción de la bios
Respuesta
De "http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf (" Convenciones de llamada "en la página 3), parece que la llamada del BIOS puede usar hasta 1024 bytes de espacio de pila. Mi Google no ha encontrado ninguna otra fuente.
antes de ingresar al controlador de interrupciones, todos los registros se envían a la pila junto con la dirección de retorno, suma los registros y agrega el espacio necesario para almacenar la dirección de devolución para obtener el tamaño de pila mínimo.
tomar en cuenta que necesitará un poco más de espacio si usted está empujando más datos en la pila mientras que en el manejador de interrupciones
me he dado cuenta que si está utilizando int 0x13 usted debe tener una pila que es al menos 4096 bytes. Las BIOS modernas a menudo tienen un controlador int 0x38 compatible con AHCI, y como AHCI es bastante complicado, el BIOS int 0x13 requiere mucho espacio en la pila.
En el mundo perfecto, el BIOS debe tener su propia pila, pero muchos BIOS dependen de la pila que proporcione.
La respuesta simple es que la pila que el BIOS utilizó para realizar llamadas de interrupción (incluido el int 13h para cargar el sector de arranque desde la unidad flash USB) antes de cargar el sector de arranque es suficiente para el uso del sector de arranque.
La respuesta felices es que las interrupciones de la BIOS (excepto para el PCI hinchada más reciente) están diseñados para ejecutar en un espacio mínimo lo que no hay necesidad de configurar una pila en el sector de arranque.
- 1. Tamaño de la pila restante hasta que se produce un desbordamiento de pila
- 2. 0xffff0 y la BIOS
- 3. Establezca el tamaño de la pila con setrlimit() y provoque un desbordamiento de la pila/segfault
- 4. -Xms: ¿tamaño de pila inicial o tamaño de pila mínimo?
- 5. ¿Cómo prevenir un desbordamiento de pila al monitorear el tamaño de la pila?
- 6. Problemas de tamaño de la pila de actividad de Android?
- 7. Android: aumentar el tamaño de la pila de llamadas
- 8. Tamaño máximo de la pila de llamadas excedido durante una llamada setTimeout
- 9. ¿Por qué el compilador de C# requiere la declaración de interrupción en la construcción del conmutador?
- 10. C++ std máximo :: la longitud de la cadena viene dictada por el tamaño de pila o el tamaño de pila?
- 11. La interrupción de subproceso no finaliza la llamada de bloqueo en la secuencia de entrada lee
- 12. Windbg Establecer puntos de interrupción condicionales que dependen de la Pila de llamadas
- 13. Cambiar la configuración de la BIOS usando el lenguaje C
- 14. Estimación del tamaño de pila
- 15. ¿Cómo aumentar el tamaño de la pila de Java?
- 16. La pila .NET vs pila de Windows
- 17. confusión acerca de la función de llamada pila
- 18. Tamaño de la pila de llamadas dentro de JavaScript
- 19. Llamada al método privado que retiene la pila de llamadas
- 20. Número de página en BIOS interrumpe
- 21. ¿Cuándo te preocupa el tamaño de la pila?
- 22. Aumente el tamaño de la pila en Linux con setrlimit
- 23. Cómo determinar el tamaño óptimo de la pila de hilos?
- 24. ¿Aumenta el tamaño de la pila al compilar con mingw?
- 25. ¿Cómo puedo aumentar el tamaño de la pila en Python?
- 26. ¿Hay alguna manera de verificar el tamaño de pila disponible antes de una llamada recursiva? (C#)
- 27. ¿Se requiere HttpWebRequest.GetResponse para completar un POST?
- 28. Error de desbordamiento de la pila de Java: ¿cómo aumentar el tamaño de la pila en Eclipse?
- 29. devoluciones de llamada del navegador y la locura de la pila de actividad de Android
- 30. ¿Se requiere un índice compuesto para acelerar la consulta combinada?