【发布时间】:2013-02-01 17:40:24
【问题描述】:
简单地说,我的目标是使用 Int 13h 读取我的磁盘参数。
我知道这不能在 Windows 中直接完成,因为它本质上会拦截 BIOS 调用。
到目前为止,我的想法是我可以重写内存位置 0x7C00h 中的代码,并利用 Int 19h 进行热重启,这将跳转到现在被覆盖的 0:7C00h,然后我就可以读取磁盘参数。
我在正确的轨道上吗?我觉得(我希望)我至少指向了正确的方向。
提前致谢。
【问题讨论】:
-
如果您在 Windows 上,为什么要使用 int 0x13?只需向 ATA 设备发出 ATA_IDENTIFY 即可获得更好的信息。
-
这是指定我编写实模式程序并使用 int 13h 的作业的一部分,这就是为什么我要问我是否在正确的轨道上,而不是代码。我对此很陌生,所以我不是 100% 采用最佳方法,没有指定 Windows,我只是认为这可能是一个合理的方向。
-
您必须在 Windows 内部进行吗?
-
问题格式对此含糊不清,现在教授只是说在VirtualBox中使用MSDOS。谢谢大家的时间!
标签: assembly interrupt hard-drive bios