BIOS INT 0x15 La fonction 0x88 renvoie toujours la même taille de mémoire
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?
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