BIOS INT 0x15 Función 0x88 siempre devuelve el mismo tamaño de memoria
Pregunta
Estoy usando BIOS int 0x15 en mi emulador de Bochs, sin embargo, esto siempre devuelve el mismo tamaño de memoria (34440) sin importar lo que haya configurado:
mov ax, 0x88
int 0x15
Sé que hay mejores métodos de detección de memoria, pero quería entender por qué esto no funcionaba como se esperaba (solo en caso de que haya algo que haya hecho)
¿Por qué es esto? ¿Es el bios de bochs solo codificado para devolver este valor?
Solución
El valor de retorno que está viendo (AX = 34440) es AH = 86H y AL = 88H
. No es un tamaño de memoria. Apuesto a que también está viendo que la bandera de acarreo vuelve a aparecer, lo que indica un error. El código de error 86H (en AH) significa que la función no es compatible. Es posible que haya configurado Bochs de forma intencional o no para emular una PC pre-AT.
Otros consejos
puedes intentar verificar INT 15h, AX = E820h - Mapa de direcciones del sistema de consultas cómo bochs INT15 / E820 mapa de RAM física provisto por BIOS
Obtener tamaño de memoria extendida
mov ah,88h
int 15h