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?

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top