使用Int 13H读取磁盘参数
问题描述:
我的目标是简单地说,使用Int 13h来读取我的磁盘参数。使用Int 13H读取磁盘参数
我知道这不能直接在Windows中完成,因为它本质上是拦截BIOS调用。
到目前为止,我的想法是,我可以在0x7C00h的内存位置重写代码,并利用Int 19h进行热重启,这将跳转到现在被覆盖的0:7C00h,然后我就可以读取磁盘参数。
我在正确的轨道上吗?我觉得(我希望)我至少指向正确的方向。
在此先感谢。
答
做热重启没有太大意义。
如果您的程序在Windows下运行,您将无法启动热重启,并且地址0x7c00不太可能映射到物理地址0x7c00处的物理内存,这要归功于Windows。
如果您的程序在DOS下运行,为什么不直接使用int 13h
而无需重新启动?
如果您确实想在干净的系统上运行您的代码(无DOS或Windows),请编写引导扇区,制作可引导软盘或CD或闪存盘并从中启动。
为什么你使用int 0x13如果你在Windows上?只要看一下ATA_IDENTIFY到ATA设备,你就会得到更好的信息。 – SecurityMatt 2013-02-17 02:51:49
这是一个赋值的一部分,它指定我编写一个实模式程序并使用int 13h,这就是为什么我要问我是否在正确的轨道上,而不是代码。我相当新,所以我不是100%的最佳方法,没有指定Windows,我只是认为这可能是一个合理的方向。 – Ramrod 2013-02-17 03:17:43
你必须从Windows内部完成吗? – SecurityMatt 2013-02-17 03:30:38