我在我的 Bochs 模拟器上使用 BIOS int 0x15,但是无论我配置了什么,它总是返回相同的内存大小(34440):
mov ax, 0x88
int 0x15
我知道有更好的内存检测方法,但我想了解为什么这没有按预期工作(以防万一我做了什么)
为什么是这样?bochs bios 是否只是硬编码以返回此值?
您可以尝试检查 INT 15h, AX=E820h - Query System Address Map how bochs INT15/E820 BIOS-provided physical RAM map
获取扩展内存大小
mov ah,88h
int 15h
您看到的返回值 (AX=34440) 是AH=86H and AL=88H
. 这不是内存大小。我敢打赌,您还会看到进位标志返回设置,表示出现错误。错误代码 86H(在 AH 中)表示该功能不受支持。您可能有意或无意地设置 Bochs 来模拟 pre-AT PC。