0

简单地说,我的目标是使用 Int 13h 来读取我的磁盘参数。

我知道这不能在 Windows 中直接完成,因为它本质上会拦截 BIOS 调用。

到目前为止,我的想法是我可以重写内存位置 0x7C00h 中的代码,并利用 Int 19h 进行热重启,这将跳转到现在覆盖的 0:7C00h,然后我将能够读取磁盘参数。

我在正确的轨道上吗?我觉得(我希望)我至少指向了正确的方向。

提前致谢。

4

1 回答 1

2

进行热重启没有多大意义。

如果您的程序在 Windows 下运行,您将无法启动热重启,并且地址 0x7c00 不太可能映射到物理地址 0x7c00 的物理内存,这要归功于 Windows。

如果您的程序在 DOS 下运行,为什么不直接使用int 13h而无需重新启动?

如果你真的想在一个干净的系统(没有 DOS 或 Windows)上运行你的代码,写一个引导扇区,制作一张可引导的软盘或 CD 或闪存棒,然后从它引导。

于 2013-02-17T02:49:03.287 回答