开发者

BIOS INT 0x15 Function 0x88 always returns same memory size

I'm using BIOS int 0x15 on my Bochs emulator, however this always returns the same memory size (34440) no matter what I have configured:

mov ax, 0x88
int 0x15

I know that there are better methods of memory detection, but I wanted 开发者_运维问答to understand why this wasnt working as expected (just in case there is something I've done wring)

Why is this? Is the bochs bios just hard-coded to return this value?


you may try to check INT 15h, AX=E820h - Query System Address Map how bochs INT15/E820 BIOS-provided physical RAM map

Get Extended Memory Size

mov ah,88h
int 15h


The return value you're seeing (AX=34440) is AH=86H and AL=88H. It's not a memory size. I'll bet you're also seeing the carry flag coming back set, indicating an error. The error code 86H (in AH) means the function is not supported. You may have intentionally or unintentionally set up Bochs to emulate a pre-AT PC.


you should use mov ah,0x88 to pass the sub function code before call INT 0x15.

Not mov ax,0x88

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜