Pergunta

Estou usando o BIOS Int 0x15 no meu emulador de Bochs, no entanto, isso sempre retorna o mesmo tamanho de memória (34440), independentemente do que eu configurei:

mov ax, 0x88
int 0x15

Eu sei que existem melhores métodos de detecção de memória, mas eu queria entender por que isso não estava funcionando como esperado (apenas caso haja algo que eu fiz a torção)

Por que é isso? O Bochs BIOS é codificado para retornar esse valor?

Foi útil?

Solução

O valor de retorno que você está vendo (ax = 34440) é AH=86H and AL=88H. Não é um tamanho de memória. Aposto que você também está vendo a bandeira de transporte voltando, indicando um erro. O código de erro 86H (em AH) significa que a função não é suportada. Você pode ter configurado intencionalmente ou involuntariamente Bochs para emular um PC pré-atégio.

Outras dicas

Você pode tentar verificarInt 15h, ax = e820h - mapa de endereço do sistema de consultaComo Bochs INT15/E820 Mapas de RAM física fornecidas pelo BIOS

Obtenha tamanho de memória estendido

mov ah,88h
int 15h
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top