【发布时间】:2010-12-21 01:24:33
【问题描述】:
我在我的 Bochs 模拟器上使用 BIOS int 0x15,但是无论我配置了什么,它总是返回相同的内存大小 (34440):
mov ax, 0x88
int 0x15
我知道有更好的内存检测方法,但我想了解为什么它没有按预期工作(以防万一我做了什么事情)
这是为什么? bochs bios 是否只是硬编码以返回此值?
【问题讨论】:
我在我的 Bochs 模拟器上使用 BIOS int 0x15,但是无论我配置了什么,它总是返回相同的内存大小 (34440):
mov ax, 0x88
int 0x15
我知道有更好的内存检测方法,但我想了解为什么它没有按预期工作(以防万一我做了什么事情)
这是为什么? bochs bios 是否只是硬编码以返回此值?
【问题讨论】:
你可以试试看 INT 15h, AX=E820h - Query System Address Map bochs INT15/E820 BIOS 提供的物理 RAM 如何映射
获取扩展内存大小
mov ah,88h
int 15h
【讨论】:
您看到的返回值 (AX=34440) 是 AH=86H and AL=88H。这不是内存大小。我敢打赌,您还会看到进位标志返回设置,表示出现错误。错误代码 86H(在 AH 中)表示该功能不受支持。您可能有意或无意地设置了 Bochs 来模拟 AT 之前的 PC。
【讨论】: