BIOS INT 0x15 La funzione 0x88 restituisce sempre la stessa dimensione di memoria

StackOverflow https://stackoverflow.com/questions/1809856

  •  05-07-2019
  •  | 
  •  

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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top