我的目标是,简单地说,使用Int 13h来读取我的磁盘参数。
我知道这不能直接在Windows中完成,因为它实际上拦截了BIOS调用。
到目前为止,我的想法是,我可以在0x7C00h的内存位置重写代码,并利用Int 19h进行热重启,这将跳转到现在覆盖的0:7C00h,然后我就能够读取磁盘参数。
我是否在正确的轨道上?我觉得(我希望)我至少指出了正确的方向。
提前致谢。
答案 0 :(得分:2)
进行热重启没有多大意义。
如果你的程序在Windows下运行,你将无法启动热重启,地址0x7c00不太可能映射到物理地址0x7c00的物理内存,这要归功于Windows。
如果您的程序在DOS下运行,为什么不直接使用int 13h
而不重新启动?
如果你真的想在一个干净的系统上运行你的代码(没有DOS或Windows),写一个启动扇区,制作一张可启动的软盘或CD或闪存棒并从中启动。