BIOS INT 0x15 Функция 0x88 всегда возвращает один и тот же объем памяти

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

  •  05-07-2019
  •  | 
  •  

Вопрос

Я использую 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top