2009-11-27 7 views
0

Я использую BIOS INT 0x15 на моем Bochs эмулятор, однако это всегда возвращает размер же памяти (34440), независимо от того, что я настроил:BIOS INT 0x15 Функция 0x88 всегда возвращает тот же размер памяти

mov ax, 0x88 
int 0x15 

Я знаю, что есть лучшие методы обнаружения памяти, но я хотел понять, почему это не работает должным образом (на всякий случай, если я что-то сделал)

Почему это? Является ли биография bochs жестко закодирована, чтобы вернуть это значение?

ответ

2

Возвращаемое значение вы видите (AX = 34440) есть AH=86H and AL=88H. Это не размер памяти. Готов поспорить, вы также видите, что флаг переноса возвращается обратно, указывая на ошибку. Код ошибки 86H (в AH) означает, что функция не поддерживается. Возможно, вы намеренно или непреднамеренно настроили Bochs для эмуляции ПК до AT.

3

вы можете попробовать проверить INT 15h, AX=E820h - Query System Address Map как Bochs INT15/E820 BIOS предоставляемый физическая карта памяти

Получить расширенный размер памяти

mov ah,88h 
int 15h 

 Смежные вопросы

  • Нет связанных вопросов^_^