BIOS INT 0x15 La funzione 0x88 restituisce sempre la stessa dimensione di memoria
Domanda
Sto usando BIOS int 0x15 sul mio emulatore Bochs, tuttavia questo restituisce sempre la stessa dimensione di memoria (34440) indipendentemente da ciò che ho configurato:
mov ax, 0x88
int 0x15
So che esistono metodi migliori per il rilevamento della memoria, ma volevo capire perché questo non funzionava come previsto (nel caso in cui ci sia qualcosa che ho fatto scrivere)
Perché questo? Il BIOS di Bochs è appena codificato per restituire questo valore?
Soluzione
Il valore di ritorno che vedi (AX = 34440) è AH = 86H e AL = 88H
. Non è una dimensione di memoria. Scommetto che vedrai anche la bandiera di trasporto che torna indietro, indicando un errore. Il codice di errore 86H (in AH) indica che la funzione non è supportata. Potresti aver intenzionalmente o non intenzionalmente impostato Bochs per emulare un PC pre-AT.
Altri suggerimenti
potresti provare a controllare INT 15h, AX = E820h - Mappa dell'indirizzo del sistema di query come bochs INT15 / E820 mappa RAM fisica fornita dal BIOS
Ottieni dimensioni memoria estese
mov ah,88h
int 15h