背景:在我的操作系统启动之前,我需要保留低于 0xA0000 的内存量。为此,我更改了0040:0013(或 0x413)字,这是 KiB 中可用的低内存量。
但是,Windows 和其他操作系统使用E820h/INT15h来查询内存布局,并且某些 BIOS:es 不会反映 E820h/INT15h BIOS 功能的 0x413 更改。因此,如果需要,我还必须挂钩 E820h 功能。
问题:在操作系统之前是否有另一种(更可靠的)方法来保留低内存?或任何其他改变 E820h/INT15h 结果的方法,而不是挂钩 INT15h(也许通过戳 EBDA?)