使用Int 13H读取磁盘参数

时间:2013-02-17 00:47:00

标签: assembly interrupt hard-drive bios

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

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

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