Question

J'utilise BIOS int 0x15 sur mon émulateur Bochs. Toutefois, cette mémoire renvoie toujours la même taille de mémoire (34440), quelle que soit ma configuration:

mov ax, 0x88
int 0x15

Je sais qu'il existe de meilleures méthodes de détection de la mémoire, mais je voulais comprendre pourquoi cela ne fonctionnait pas comme prévu (juste au cas où je ferais quelque chose avec wring)

Pourquoi est-ce? Le BIOS de Bochs est-il simplement codé en dur pour renvoyer cette valeur?

Était-ce utile?

La solution

La valeur de retour affichée (AX = 34440) est AH = 86H et AL = 88H . Ce n'est pas une taille de mémoire. Je parie que vous voyez également le drapeau de portage revenir, indiquant une erreur. Le code d'erreur 86H (en AH) signifie que la fonction n'est pas prise en charge. Vous avez peut-être configuré intentionnellement ou non Bochs pour émuler un PC pré-AT.

Autres conseils

vous pouvez essayer de vérifier INT 15h, AX = E820h - Carte d'adresses du système de requête comment bochs INT15 / E820 Carte de RAM physique fournie par le BIOS

Obtenir une taille de mémoire étendue

mov ah,88h
int 15h
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top