使用程序集代码访问硬盘驱动器文件



所以我正在尝试制作一个可引导的小程序集,让用户删除文件并将其添加到指定的驱动器中。唯一的问题是,我不知道如何访问带有组件的驱动器。有人能告诉我在哪里能找到这些信息吗?该信息也可以用于c编程语言。

我会尝试从某种可引导的汇编代码类型访问默认的Windows7硬盘。这就是NTFS。

要在x86 PC上使用某些可引导代码访问磁盘,最简单、最自然的方法是使用BIOS int 13h函数。这将允许您读取和写入单个磁盘扇区。

硬盘驱动器通常被划分为多个分区,还有主引导记录(MBR),它描述了每个分区的位置、大小和类型。MBR是HDD的第一个扇区。

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

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

关于EFI系统的附言有些不同。有GPT而不是MBR,并且您使用EFI设施来访问磁盘,而不是BIOS int 13h。

附言:我已经用C和一点点汇编完成了你想要的,但用了FAT1x/32而不是NTFS。这是可行的。NTFS更难。这对一个人来说可能是不可能的,尤其是如果他们没有足够的知识和技能。

相关内容

  • 没有找到相关文章

最新更新