BIOS INT 0x15 Функция 0x88 всегда возвращает один и тот же объем памяти
Вопрос
Я использую BIOS int 0x15 на моем эмуляторе Bochs, однако это всегда возвращает один и тот же размер памяти (34440) независимо от того, что я настроил:
mov ax, 0x88
int 0x15
Я знаю, что существуют более эффективные методы обнаружения памяти, но я хотел понять, почему это не сработало, как ожидалось (на всякий случай, если что-то я и сделал)
Почему это? Является ли биос bochs жестко запрограммированным для возврата этого значения?
Решение
Возвращаемое значение (AX = 34440) равно AH = 86H и AL = 88H
. Это не объем памяти. Могу поспорить, вы также видите, что флаг переноса возвращается, указывая на ошибку. Код ошибки 86H (в AH) означает, что функция не поддерживается. Возможно, вы преднамеренно или непреднамеренно настроили Bochs для эмуляции компьютера до AT.
Другие советы
вы можете попробовать проверить INT 15h, AX = E820h - карта адресов системы запросов как bochs INT15 / E820 обеспечивает BIOS физической картой ОЗУ
Получить расширенный объем памяти
mov ah,88h
int 15h