使用汇编代码访问硬盘驱动器文件?

时间:2012-02-19 04:53:19

标签: windows assembly ntfs drives

因此,我尝试制作一个可启动的小程序集程序,让用户删除并将文件添加到指定的驱动器。唯一的问题是,我不知道如何使用程序集访问驱动器。有人能指出我能找到这些信息的方向吗?该信息也可以用于c编程语言。

我会尝试从某些可启动的汇编代码类型访问默认的Windows 7硬盘驱动器。这是NTFS。

1 个答案:

答案 0 :(得分:8)

要在x86 PC上访问某些可启动代码中的磁盘,最简单,最自然的方法是使用BIOS int 13h functions。这将允许您读写单个磁盘扇区。

硬盘驱动器通常分为多个分区,还有Master Boot RecordMBR),用于描述每个分区的位置,大小和类型。 MBR是HDD的第一个扇区。

每个分区内都有一些文件系统。您需要实现NTFS驱动程序才能在NTFS中读取和写入文件。

AFAIK,NTFS未打开,但存在基于反向工程的NTFS驱动程序(例如在Linux中)。 NTFS驱动程序通常用C(++)编写,而不是汇编,因为NTFS很大而且很复杂,C在开发,维护和可移植性方面比汇编更实用。我不建议在汇编中编写FS代码。

P.S。在EFI系统上,情况有所不同。有GPT而不是MBR,你使用EFI工具来访问磁盘而不是BIOS int 13h。

P.P.S。我已经完成了你想要的C和一点点组装,但使用FAT1x / 32而不是NTFS。这是可行的。 NTFS更难。一个人可能是不可能的,特别是如果他们没有足够的知识和技能。